- 今天在vscode里写一个c++demo的时候报了标题给出的错误,后来百度了一下,问题是构造函数的参数缺省值只能在定义或实现处的一个地方写,如果两个地方同时写就会报这个错误。
CMyTime(int h, int m = 0); //重载构造函数,这是头文件的定义
CMyTime::CMyTime(int h , int m=0) 这是cpp文件的定义,如果这样写成一模一样就会报上述错误
{
m_hours = h;
m_minutes = m;
}
正确的应该是
CMyTime::CMyTime(int h , int m)
{
m_hours = h;
m_minutes = m;
}
或者反之,在定义的时候不写缺省值,在实现的时候写缺省值。