內嵌子對象

class CB  
{
public:
	CB(int nNum);
	~CB();

private:
	int m_nNum;
};

class CA  
{
public:
	CA();
	~CA();

private:
	CB m_obj;
};

以上代碼中的m_obj就是內嵌子對象

當CA、CB類不在一個頭文件裏面的時候,想要在CA中創建CB類的對象就得包含CA的頭文件或者前項聲明,但是值得一提的就是CA、CB類不能互相包含對方的頭文件,所以這個時候用前項聲明比較好。以下就是前項聲明的示例:

class CB;

class CA  
{
public:
	CA();
	virtual ~CA();

private:
	CB *m_pobj;
};

前項聲明的類,在另一個類中只能用其類的指針或引用創建對象

例:private:

CA *m_pA;

CA &m_obj;

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