急求C++编译时候的错误解决方法

来源:百度知道 编辑:UC知道 时间:2024/06/01 22:49:11
我编写了一个简单的C++程序,但是出现了这个错误,请高手指点,谢谢!
这里定义了一个头文件0502.h
#include<iostream.h>
class Time{
public:
Time(int hour=10,int minute=20,int seconds=30);

Time();
void showtime();
private:
int hrs,mins,secs;
};
Time::Time(int hour,int minute,int seconds)
{
hrs=hour;
mins=minute;
secs=seconds;
}
Time::Time()
{
hrs=15;
mins=25;
secs=35;
}
void Time::showtime()
{
cout<<hrs<<":"<<mins<<":"<<secs<<endl;
}
这是主函数
#include<iostream.h>
#include"time0502.h"
int main()
{
cout<<"show the every time object"<<endl;
Time aTime;
cout<<"*****aTime***:";
aTime.showtime();

Time bTime(12);
cout<<"*****bTime***:";
bTime.showtime();

Time cTime(12,30,50);


Time();
这个构造函数删掉~~~
显然在main中执行
Time aTime;
时会有歧义 不知道该用哪个构造函数

我觉得可能是在定义那个“构造函数time”出了问题,不应该把构造函数里面的形参表里初始化, 只能在建立对象时初始化,可以为:
#include<iostream>
using namespace std;
class Time
{ public:
Time(int h=15,int m=25,int s=35):hour(h),minutes(m),seconds(s){}
time(){};
void showtime();
private:
int hour,minutes,seconds;
};
Time::Time(int h,int m,int s)
{
hour=h;
minutes=m;
seconds=s;
}
void Time::showtime()
{
cout<<hour<<":"<<minutes<<":"<<seconds<<endl;
}

#include"time0502.h"
#include<iostream>//还是要按标准C++格式写哦!
using namespace std;
int main()
{
cout<<"show the every time object"<<endl;
Time aTime;
cout<<"*****aTime***:";
aTime.showtime(); //调用第二的构造函数time()里面没有任何语句,