是否可以使用默认参数创建构造函数。 像这样的东西
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;
}
答案 0 :(得分:3)
是的,可以使构造函数具有默认参数。
关于您的特定示例的两个警告:
explicit
,以便它不会用于从int
到Object
的隐式转换。