我有一个定义如下的类:
class Foo {
private:
boolean feature;
public:
Foo(boolean feature) : feature(feature) {}
// ...
};
我正在尝试构造一个实例,作为另一个类的私有(private)属性:
class Bar {
private:
Foo foo(true);
// ...
};
这行不通。我在声明的行上得到 expected identifier before numeric constant
。当我简单地从 Foo
的构造函数定义中删除参数并请求 Foo foo;
时,它起作用了。
为什么?
如何定义和声明一个带有 bool 参数的 Foo
实例?
最佳答案
您不能在类成员声明中使用该初始化语法;您只能使用 {}
或 =
初始化成员。以下应该有效(假设支持 C++11 或更高版本):
Foo foo{true};
Foo foo = Foo(true);
关于c++ - 调用不带参数的构造函数有效,带参数则无效。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29971901/