Portál AbcLinuxu, 4. listopadu 2025 09:04
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.