前置声明和包含头文件的区别(待补充)
//#include"A.h" class A; class B { public: //A a; //编译器为a分配内存必须知道a的大小,如果使用前置声明,则得不到类A的定义,无法创建对象a; A* pa; //而指针在创建时,只需要给他分配4个字节就好了(32位下) A & ra; A fun(A a);//函数中存在A类的对象时,并不会出现问题,大概是因为普通函数不占用内存.
static A sa; //!!为何他可以通过编译呢?? sa是需要占空间的呀。
}
新战场:https://blog.csdn.net/Stephen___Qin