Portál AbcLinuxu, 22. prosince 2025 08:41
class Nadtrida_1
{
class Podtrida_1
{
Typ atribut;
}
Typ atribut;
Nadtrida_2::Podtrida_2 * ukazatel;
}
class Nadtrida_2
{
class Podtrida_2
{
Typ atribut;
}
Typ atribut;
Nadtrida_1::Podtrida_1 * ukazatel;
}
Je to sice zverstvo
, ale mam k tomu sve duvody. Nadtrida_1 a Nadtrida_2 jsou kazda v jinem hlavickovem souboru a tudiz nemuzu pouzit include. Chci tedy pouzit delaraci te druhe tridy v hlavickovem souboru te prvni:
class Nadtrida_2; // v souboru s Nadtrida_1 class Nadtrida_1; // v souboru s Nadtrida_2Tohle by bylo vpohode. Problem je v tom, ze potrebuju i deklarace tech podtrid:
class Nadtrida_2; // v souboru s Nadtrida_1 class Nadtrida_2::Podtrida_2; class Nadtrida_1; // v souboru s Nadtrida_2 class Nadtrida_1::Podtrida_1;Na což už překladač nadává:
error: expected type-nameNeuvědomuju si žádný důvod proč by podtřídy nemohly mít deklarace, ale pokud tomu tak je, tak bych rád věděl proč. Děkuju za odpověď.
class Nadtrida {
public:
class Podtrida {
};
};
class Nadtrida_1 : public Nadtrida
{
public:
class Podtrida_1 : public Podtrida
{
int atribut;
};
int atribut;
Nadtrida::Podtrida * ukazatel;
};
class Nadtrida_2 : public Nadtrida
{
public:
class Podtrida_2 : public Podtrida
{
int atribut;
};
int atribut;
Nadtrida::Podtrida * ukazatel;
};
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.