C++类的内部定义类的对象的错误解析
在初学过程中,一个课后习题,我做错了,于是有了这个文章。
错误如下:
原因分析:
因为在类定义一个对象时,编译器会根据类的内存大小为该对象分配内存空间。
然而对于B next; 此时类B还没有定义结束,编译器还不知道类B占多大字节,所以也就无法为对象next分配内存空间,所以报错。
对于A* p;和A& r; 指针和引用类型编译器是知道它占多大内存的,所以可以分配空间,不会报错。
在初学过程中,一个课后习题,我做错了,于是有了这个文章。
错误如下:
原因分析:
因为在类定义一个对象时,编译器会根据类的内存大小为该对象分配内存空间。
然而对于B next; 此时类B还没有定义结束,编译器还不知道类B占多大字节,所以也就无法为对象next分配内存空间,所以报错。
对于A* p;和A& r; 指针和引用类型编译器是知道它占多大内存的,所以可以分配空间,不会报错。