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;