c++-前向聲明

c++中類必須先聲明,再定義

如果兩個類相互引用形成一個環形引用時,無法先定義再使用,這時就要用到前向聲明。

前向生命的類不能實例化,只能定義指針或者引用

雖然在頭文件中不能include互相包含,但是在定義文件中要用include引用類

下面看一個例子:

//B.h
#ifndef _B_H_
#define _B_H_
class B
{
private:
	A a;
};
#endif
//A.h
#ifndef _A_H_
#define _A_H_
class B;
class A 
{
private:
	B *b;
	//B b;   //error 不能實例化,因爲只有類的聲明,類的具體細節不知道
};
#endif
#include "A.h"
//#include "B.h"        //只引入B.h是不對的,但是隻引入A.h是對的

int main()
{
	A a;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章