我有一些看起来像这样的东西:
class Foo
{
public:
Foo(parameter);
}
class Bar
{
Foo fooObject;
}
Bar::fooObject(data);
但是我得到:
error: expected constructor, destructor, or type conversion before '(' token
所以我的问题是:如何从 Bar 外部构造 fooObject?
最佳答案
您可以拥有一个从类外部获取 Foo
实例的构造函数,然后您可以将该实例复制或移动到您的成员变量。另一种方法是采用所需的参数来构造 Foo
的实例,然后使用成员初始化列表来构造成员变量。
class Bar
{
public:
Bar(const Foo& foo) // Copy
: fooObject(foo)
{
}
Bar(Foo&& foo) // Move
: fooObject(std::move(foo))
{
}
Bar(int example)
: fooObject(example)
{
}
private:
Foo fooObject;
}
关于c++ - 如何从外部类构造成员类对象(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45483260/