在C++中動態分配帶有重載構造函數的對象的語法是什麼?在C++中動態分配帶重載構造函數的對象
如果我有一類Foo:
class Foo{
public:
Foo(string str, int nbr); // Overloaded constructor
};
和(使用美孚)第二類foo2的:
#include "Foo"
class Foo2{
public:
Foo* myFoo; // Wrong!
Foo2(){
myFoo = new Foo(myStr, myNbr);
}
};
顯示的錯誤是:
no matching function for call to "Foo::Foo()"
如何我可以在創建myFoo對象指針時指定它將使用構造函數Foo(string str, int nbr)
而不是Foo()
構造函數。
是否有可能不使用構造函數委託?
你得到了什麼錯誤? – WeaselFox
這不是錯誤的語法。語法是正確的。也許這是類定義結尾缺少的分號?另外構造函數是私有的,它應該是公開的可調用的。 – dornhege
鑑於這個錯誤,你確定你正在編譯你認爲自己的代碼嗎?如果是,您確定錯誤位於標有「錯誤語法」的行上。 – user2079303