前置声明
在一个类中使用另一个类可以通过头文件:
//A.h #include"b.h" class A{ public: A(); ~A(); }; //B.h class B{ public: B(); ~B(); };
也可以通过前置声明:
//A.h class B; class A{ private: B *b; public: A(); ~A(); }; //B.h class B{ public: B(); ~B(); };
B b定义了一个B类型变量,编译器为b分配内存空间的时候必须知道b的大小,必须包含定义B类的B.h文件;
而指针*b的大小是固定的。
注意:在使用*b时,要在B的源文件中初始化。
//A.cpp #include"B.h" A::A(){ b=new B; } ~A::A(){}

浙公网安备 33010602011771号