Powiel możliwe:
Forward declaration of nested types/classes in C++Czy istnieje sposób, aby wstępnie ustalić klasy zagnieżdżone w C++?
Dla prostych odsyłaczy klas jest to wykonalne do predeclare z classnames i używać go jako odniesienie. W ten sposób reprezentacja jest wskaźnikiem. Ale na wypadek, gdybym chciał odwołać się do zagnieżdżonej klasy obu (patrz przykład poniżej), wpadnę w kłopoty, ponieważ wydaje się, że nie ma możliwości uprzedniego odgadnięcia klasy zagnieżdżonej.
Moje pytanie brzmi: czy istnieje sposób uprzedniego ustalenia klas zagnieżdżonych, aby mój przykład zadziałał?
Jeśli nie: czy istnieje wspólne obejście tego problemu, które nie powoduje zbytniego uszkodzenia kodu?
// Need to predeclare it to use it inside 'First'
class Second;
class Second::Nested; // Wrong
// Definition for my 'First' class
class First
{
public:
Second::Nested* sested; // I need to use the nested class of the 'Second' class.
// Therefore I need to predeclare the nested class.
class Nested { };
};
// Definition for my 'Second' class
class Second
{
public:
First::Nested* fested; // I need to use the nested class of the 'First' class.
// This is okay.
class Nested { };
};
OK - Gdybym szukał "zadeklarować", znalazłbym tę odpowiedź. (To nie jest możliwe.) To właśnie to. Dzięki. Ale na razie myślę o obejściu. Unnesting konflikty z inną 'klasą zagnieżdżoną 'mojej przestrzeni nazw. A zmiana nazwy zaciemni użytkownika interfejsu. –