即使使用默認構造函數,仍然有錯誤。錯誤C2512:「平鋪」:沒有適當的默認構造函數可用
class Foo {
public:
Foo (int x, int y, int type);
}
而在.cpp文件
Foo::Foo (int x = 0, int y = 0, int type = 0) {
然而,當我把它稱爲
Foo foo_array[5][5];
我得到的錯誤。任何可能的原因?
即使使用默認構造函數,仍然有錯誤。錯誤C2512:「平鋪」:沒有適當的默認構造函數可用
class Foo {
public:
Foo (int x, int y, int type);
}
而在.cpp文件
Foo::Foo (int x = 0, int y = 0, int type = 0) {
然而,當我把它稱爲
Foo foo_array[5][5];
我得到的錯誤。任何可能的原因?
將默認參數放在構造函數的聲明中。實際上,當您嘗試創建數組時,編譯器不知道它們。
你會如何做到這一點與陣列?我以爲你不能。 – 2013-02-20 23:36:44
@JimHurley你不需要對數組做任何事情 - 改變構造函數的聲明。 – 2013-02-20 23:43:29
我很抱歉,但你能舉一個例子來說明如何做到這一點嗎?我以爲那是我在做的地方。 – 2013-02-21 00:03:00
請參閱:http://stackoverflow.com/questions/13713916/am-i-using-default-arguments-incorrectly/13713944#13713944 – billz 2013-02-20 23:31:03
如果您使用'std :: vector'而不是原始數組,那麼您可以指定一個默認值,這樣就不需要有其他不必要的(也許不是非常有意義的)默認構造函數。 – 2013-02-20 23:33:36