#include
#include
using namespace std;
class Clock{
int hour,minute,second;
public:
Clock(int newH, int newM, int newS);
void getTime(int newH ,int newM, int newS);
void showTime();
};
Clock::Clock(int newH ,int newM ,int newS):hour(newH),minute(newM),second(newS){}
void Clock::getTime(int newH ,int newM, int newS)
{
hour=newH;
minute=newM;
second=newS;
}
void Clock::showTime()
{
cout<<"Now time is "<" : "<" : "<int main()
{
Clock a(1,2,3);
a.showTime;
Clock b;
b.getTime(4,5,6);
b.showTime();
return 0;
}
class Clock
{
int hour, minute, second;
public:
Clock() : hour(0), minute(0), second(0) {} //默认构造
Clock(int newH, int newM, int newS);
void setTime(int newH, int newM, int newS); //名字改为setTime更合理
void showTime();
};
Clock::Clock(int newH, int newM, int newS) : hour(newH), minute(newM), second(newS) {}
void Clock::setTime(int newH, int newM, int newS)
{
hour = newH;
minute = newM;
second = newS;
}
void Clock::showTime()
{
cout << "Now time is " << hour << " : " << minute << " : " << second << endl;
}
int main()
{
Clock a(1, 2, 3);
a.showTime(); //函数缺括号, a.showTime;
Clock b;//调用默认构造
b.setTime(4, 5, 6);
b.showTime();
return 0;
}
Clock b; 这个类实例定义要求Clock有无参构造函数,但你没有写
你代码,跟你出错的不配套吧。应该是 Clock b 这一行吧?
Clock b 是为了创建一个临时对象,创建就会调用构造,而你这里希望调用没有参数的构造函数。
可是,你类型并没有这样的构造,参考 Clock a
如果一个类,不提供任何构造函数,编译器会自动指定一个默认构造函数,如果你提供了构造函数,那么编译器就不会指定默认的构造函数
在Clock类里添加默认构造函数
Clock() : hour(0), minute(0), second(0) {}