错误C2512:“平铺”:没有适当的默认构造函数可用
即使使用默认构造函数,仍然有错误。错误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