小白实在不懂,请大佬指点,老是说重定义默认函数,可是改了好久也不行。

错误代码:

#include<iostream>
using namespace std;
class Time
{
protected:
    double hour;
    double minute;
    double second;
public:
    Time(double _hour = 0.0, double _minute = 0.0, double _second = 0.0);
    Time(const Time& time);
    double sethour(double _hour);
    double setminute(double _minute);
    double setsecond(double _second);
    double gethour()const;
    double getminute()const;
    double getsecond()const;
    void print()const;

};
Time::Time(double _hour = 0.0, double _minute = 0.0, double _second = 0.0)
{
    hour = _hour;
    minute = _minute;
    second = _second;
}
Time::Time(const Time& time)
{
    hour = time.hour;
    minute = time.minute;
    second = time.second;
}
double Time::sethour(double _hour)
{
    hour = _hour;
}
double Time::setminute(double _minute)
{
    minute = _minute;
}
double Time::setsecond(double _second)
{
    second = _second;
}
double Time::gethour()const
{
    return hour;
}
double Time::getminute()const
{
    return minute;
}
double Time::getsecond()const
{
    return second;
}
void Time::print()const
{
    cout << hour << "时" << minute << "分" << second << "秒";
}
int main()
{
 Time a1(1,2,3);
a1.print();
Time a2 = a1;
a2.print();
Time a3(0,0,0);
a3.sethour(11);
a3.setminute(4);
a3.setsecond(55);
Time a4 = a3;
a3.print();
a4.print();
return 0;
}

Time::Time(double _hour, double _minute, double _second)
{
    hour = _hour;
    minute = _minute;
    second = _second;
}

默认参数只需要在第一次声明的时候写就行了

声明一次

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632