**如果结构可以是自我指涉的。像
struct list
{
struct list *next;
};
因为除了默认访问说明符之外,类和结构之间没有区别。 那么可以写一个班级......
class list
{
class list *next;
};
或者可能是有任何不同的语法来获得自引用类。 如果是,那怎么样?**
答案 0 :(得分:13)
是的,但您只能自引用指针或对类(或结构)的引用
典型的方法是:
class list { list* next; }
如果你需要两个相互引用的类,你只需要转发声明类,如下所示:
class list;
class node;
class list { node* first; }
class node { list* parentList; node* next; }
如果没有完整声明(只是前向声明),则只能声明指针或引用。这是因为编译器总是知道指针或引用的大小,但是不知道类或结构的大小,除非它具有完整的声明。