2011-01-08 26 views
0

我有一個名爲CiF的類,我想將構造函數指針CiF移動到名爲Cmanager的新類中。 我想是這樣的:我如何將一個類的指針移動到另一個C++中

CiF::CiF() : Cmanager(new Cmanager(CiF THIS)) 
{ 
} 

請幫助 感謝

+3

也許你可以展示一些代碼(或者至少是某種僞代碼)來證明你想完成什麼。 – 2011-01-08 17:32:35

回答

1

下面的代碼顯示一個類的指針是如何給另一個構造函數。我認爲那就是你想要達到的目標。

我強烈建議你不要使用這樣的代碼,但是你沒有提供足夠的關於你的用例的信息,所以我不能給你選擇。

你可能應該看看智能指針和一般的類設計。 (如果給定的指針,你需要控制哪些類擁有對象的任何其他類,將其刪除等)

class CiF; 

class Cmanager 
{ 
public: 
    Cmanager() : 
     cif_(0) 
    {}; 
    void setCiF(CiF* cif) 
    { 
     cif_ = cif; 
    } 
private: 
    CiF* cif_; 
}; 

class CiF 
{ 
public: 
    CiF() : 
     cmanager_(Cmanager()) 
    { 
     cmanager_.setCiF(this); 
    } 

private: 
    Cmanager cmanager_; 
}; 
+1

在上面的例子中,`class CiF`應該是前向聲明的。 – Mahesh 2011-01-08 17:50:34

1

採用具有CiFCmanager之間的關係的時候,我覺得它不能完成。

#include <iostream> 
class Cmanager 
{ 
}; 

class Cif:public Cmanager 
{ 
    Cmanager *ptr ; 
    public: 
    bar() : ptr(this) 
    { 
    } ; 
}; 

int main() 
{ 
    Cif obj ; 
    return 0; 
} 
相關問題