前置声明

在一个类中使用另一个类可以通过头文件:

//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(){}

 

posted @ 2017-03-12 20:21  奇热行  阅读(131)  评论(0)    收藏  举报