这个牵扯到类的声明与定义。
定义类时候,遇到右花括号结束,并且一旦定义了类,那我们就知道了所有的类成员,以及存储该类的对象所需要的存储空间。C++可以声明一个类而不去定义它,例如: class Screen; 它只是在程序中引入了类类型,在声明之后定义之前,它是一个不完全类型。不完全类型只能以有限的方式使用,不能定义该类型的对象,只能用于定义指向该类型的指针及引用,或用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数。
- class A
- {
- public:
- ......
- private:
- A a;
- }
- class A
- {
- public:
- ......
- private:
- A *pa;
- }
- public class A
- {
- private:
- A a;
- public:
- static void main(String[] args) {...}
- }
能通过编译,是因为,在JAVA中,对象只有在new 时才能创建对象实例, A a; 只是创建了对象的引用。