这在C++构造函数中有什么作用?

Sir*_*III 0 c++ syntax constructor default-constructor

我在教科书中看到了这一点,但这本书没有解释它实际上做了什么,以及为什么我应该这样做.这与本书中的示例类似:

 class MyClass
 {
      public:
           MyClass(int initial_capacity = 20);
      private:
           int capacity;
 }
Run Code Online (Sandbox Code Playgroud)

我不能initial_capacity在实现中使用,我甚至无法实现任何东西,所以我很困惑这是为了什么?是否以某种方式将容量设置为20?这是一个默认的构造函数?

iva*_*nyk 11

可能是错过了构造函数的实现.例如,如果构造函数看起来像这样:

MyClass(int initial_capacity = 20) {
     capacity = initial_capacity;
}
Run Code Online (Sandbox Code Playgroud)

如果以这种方式创建对象:

MyClass a(10);
Run Code Online (Sandbox Code Playgroud)

容量将设置为10.另一方面,如果您将创建这样的对象:

MyClass a;
Run Code Online (Sandbox Code Playgroud)

容量将设置为20.

  • 我认为OP中隐含了构造函数实现的细节.当然,明确说明它们肯定会更清楚.此外,初始化列表是编写此构造函数的首选方法. (6认同)