C++ 私有变量只需要在构造函数中初始化。怎么用?

C++ 私有变量只需要在构造函数中初始化。怎么用?,c++,variables,constructor,private,C++,Variables,Constructor,Private,我有一个名为Foo的类,它有一个需要参数的构造函数,还有一个名为Bar的类,它有一个Foo私有变量 class Foo { public: Foo(string); } class Bar { public: Bar() { this->foo = Foo("test") } private: Foo foo; } 然而,当我试图编译它时,我得到一个编译错误,即没有Foo::Foo()constru

我有一个名为
Foo
的类,它有一个需要参数的构造函数,还有一个名为
Bar
的类,它有一个
Foo
私有变量

 class Foo 
 {
      public:
      Foo(string);
 }

 class Bar
 {
      public:
      Bar() { this->foo = Foo("test") }

      private:
      Foo foo;
 }
然而,当我试图编译它时,我得到一个编译错误,即没有
Foo::Foo()
constructor。看起来类
Bar
中的私有变量
foo
在获得构造函数中指定的值之前得到初始化


如何使私有
foo
变量在构造函数中等待初始化?

您需要使用初始值设定项列表。如果没有,代码将调用该对象的默认构造函数

Bar::Bar() : foo("test") {
   // stuff
}

使用初始值设定项列表:

Bar() : foo("test") {}
,在C++中使用<代码> >这是-> /COD>很少(并且经常指出其他问题)。< / P>好的,java,C,刚刚开始尝试C++。因此,我将使用此->用法。:)