c++ - 如何从外部类构造成员类对象(C++)

标签 c++

我有一些看起来像这样的东西:

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/

相关文章:

c++ - 无法使用 const struct timepec 覆盖纯虚函数*

c++ - Google Test Discovery在Mac OS X上两次添加并运行了我所有的测试

c++ - 如何获取最里面的模板参数类型?

c++ - 如何根据事件顺序编写游戏

c++ - 格式化 C++ 控制台输出

c++ - 仅将结构的 std::vector 成员传递给函数 (C++)

c++ - 如何使用 C++ 为 Windows 应用程序创建 GUI?

c++ - 简化 __VA_ARGS__ 问题 : cannot extract NULL

c++ - C++中的多重定义错误

c++ - wxWidgets 翻译不加载