-3

是否可以使用默认参数创建构造函数。像这样的东西

Object(int size = 1) {
//SMTH
}

我正在尝试在视觉工作室中这样做,但出现错误。是否可以使用默认参数创建构造函数,或者只保留使用重载?

编辑

有可能,很抱歉发布这个问题,我是 C++ 的新手。问题是我在源文件 (cpp) 中声明了默认参数,我已经像这样更改了我的类并且效果很好。

class MyClass
{
public:
    MyClass (int i = 0, std::string s = "");  // constructor declared

private:
    int x;
    int y;
    std::string z;
};

MyClass :: MyClass(int i, std::string s)     // constructor defined
{
    x = 100;
    y = i;
    z = s;
}
4

1 回答 1

3

是的,可以有带有默认参数的构造函数。

关于您的特定示例的两个警告:

  • 确保您也没有无参数构造函数,因为这会导致歧义。
  • 您可能希望创建此构造函数explicit,以便它不用于从intto的隐式转换Object
于 2013-10-12T14:48:07.800 回答