class A
{
A a;//why can't we do this
};发布于 2011-02-09 13:32:53
你可以做到
class A {
A* a;
}因为它不需要知道A的大小。
发布于 2011-02-09 13:28:57
因为类的大小是无限的。
(这是通过指定不能将不完整的类型作为成员,只能引用或指向它们的指针,并且指定A在类定义结束之前是不完整的类型来实现的。)
发布于 2011-02-09 13:32:04
我猜你是从Java还是别的什么地方来的?A a将创建一个A类型的完整实例,它包含A,它包含A,它包含A。
你可能在想这个问题:
class A
{
A *a; // A pointer to A, not a full instance
};https://stackoverflow.com/questions/4941629
复制相似问题