错误的程序:
#include <iostream>
using namespace std;
class Time
{
void set_time(void) ;
void show_time(void);
int hour;
int minute;
int sec;
};
Time t;
int main()
{
set_time();
show_time();
return 0;
}
void set_time(void)
{
cin>>t.hour;
cin>>t.minute;
cin>>t.sec;
}
void show_time(void)
{
cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
改正的:
#include <iostream>
using namespace std;
class Time
{
public: //在成员函数前加“ public:”理由:声明以下部分为公有的,可以被外界函数调用。
void set_time(void) ;
void show_time(void);
int hour;
int minute;
int sec;
};
Time t;
int main()
{
t.set_time(); //在set_time()前加“t.”理由:调用对象t的公用成员函数。
t.show_time(); //在show_time()前加“t.”理由:通过对象名和成员运算符访问对象中的成员。
return 0;
}
void Time::set_time(void) //1.把int改为void. 理由:函数声明为void.
{ //1.在set_time(void) 前面加“Time::”理由:成员函数在类外定义时必须在函数名前面加上类名,予以限定。
cout<<"请输入时间:"<<endl;
cin>>t.hour;
cin>>t.minute;
cin>>t.sec;
}
void Time::show_time(void) //1.把int改为void. 理由:函数声明为void.
{ //1.在set_time(void) 前面加“Time::”理由:成员函数在类外定义时必须在函数名前面加上类名,予以限定。
cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
运行结果: