我有這樣的定義在頭文件:在C++中初始化另一個類中的類?
class Owner
{
private:
// Fields
Child* _myChild1;
public:
// Constructors
Owner();
Owner(const char childName[]);
};
實施這一項目:
Owner::Owner(const char childName[])
{
//do some operations - children must be created after these ops
_myChild = new Child(childName);
}
這個main()函數:
int main()
{
Owner("child1");
}
一些問題,並請包涵我在這裏,我剛剛開始用C++ ..
- 鑑於子類在編譯時已知,我是否認爲我不需要在堆上使用'new'來創建它們?如果是這樣如何?我一直在使用這種語法在所有者實施,但編譯器呻吟嘗試(「術語不計算爲函數..」):
_myChild(childName);
- 然而,在執行使用這種語法好吧,爲什麼?
Child _myChild(childName);
- 是,我用正確的範式?換句話說,作爲一般規則,如果一個類包裝另一個類,那麼所有者只持有指向它所包裝的類的指針?
- 你會如何更有經驗的人做到這一點?
感謝您的任何建議..
在孩子創建之前需要做什麼操作?爲什麼? – 2009-11-10 22:45:27