在C++中,数据成员不能被指定为自身类型,但是可以是自身类型的指针 或者引用;在类体中,静态成员可以被声明为所属类的类型。
当用实例化一个类的对象时,编译器会根据类的定义来分配相应的存储空间。也就是说,在创建对象前,一定要有完整的类定义,这样编译器才能正确的计算所需空间。对于static类型的数据成员,不是存储在对象实例中,而是存储在全局变量区;对于指针和引用,它所占用的内存大小与类型无关,与机器类型有关。因此类中成员可以是这些类型。但是如果仅仅是自身类型,就会存在递归定义的问题。
当用实例化一个类的对象时,编译器会根据类的定义来分配相应的存储空间。也就是说,在创建对象前,一定要有完整的类定义,这样编译器才能正确的计算所需空间。对于static类型的数据成员,不是存储在对象实例中,而是存储在全局变量区;对于指针和引用,它所占用的内存大小与类型无关,与机器类型有关。因此类中成员可以是这些类型。但是如果仅仅是自身类型,就会存在递归定义的问题。