C++我有一個窗口類parent,它創建了多個選項卡窗口child1,child2等等。 父窗口具有每個子窗口的成員變量。我想從child1訪問child2,並認爲我可以在child1的構造函數中將指針傳遞給parent,並使用父指針訪問child2。我甚至不知道如何開始。我試過類似下面的代碼,它不能編譯,從包含(* this)的行開始。將指針傳遞給自己
class CParent
{
public:
CParent() {};
CChild1 m_Child1(*this);
CChild2 m_Child2;
....
};
class CChild1
{
public:
CChild1(CParent *pParent) {};
int getChild2Number(return pParent->m_Child2.m_number);
};
class CChild2
{
public:
CChild2() {};
m_number = 1;
}
我想知道如果有人能幫助與 1聞聽此事,而不改變其結構過於 2.建議在一個更好的方式來建立這種關係了編譯。
你從哪裏得到這段代碼?你是從頭開始寫的嗎?你爲什麼不通過看書來學習? –
呃,除了別的什麼,你對「這個」的理解是錯誤的。 'this'是一個'CParent *',這是構造函數期望的。你把它解引用,導致一個'CParent',這是錯誤的。 –
作爲一個數據點,你要做的事情就是創建依賴循環(例如'CParent - > CChild1 - > CParent')。將共享狀態放在單獨的課程中並傳遞一個'shared_ptr'給它的每個子類。 –