如何将参数化构造函数初始化为C++中的默认构造函数?

问题描述:

如何将参数化构造函数初始化为C++中的默认构造函数? 在我的考试中提出了这个问题。我们得到了一个参数化构造函数&它也作为默认构造函数。如何将参数化构造函数初始化为C++中的默认构造函数?

class A 
{ 
    A(int a = 0) 
    { 
     std::cout << a; 
    } 
}; 

只是用默认值预定义参数。

一个默认的构造,每标准(12.1/4),是:

甲 默认 构造一类 X 是类的构造函数 X 可以在没有一个参数来调用

所以,你只需要提供的参数的默认值:

class Foo 
{ 
public: 
    Foo(int a = 6) 
    { 

    } 
}; 

int main() 
{ 
    Foo obj; 
} 

当一个构造函数可以被调用时没有参数时,它被称为默认构造函数。

但是,带参数的构造函数在其参数被赋予默认值时可以变成默认构造函数。

例如:

class String { 
public: 
    String(const char∗ p = ""); // default constructor : empty string 
    // ... 
}