编写程序:
运行结果:
注意:
(1)在主函数中调用两个成员函数时,应指明对象名(t1,t2)。表示调用的是哪一个对象的成员函数。t1.display()和t2.display()虽然都是调用同一个 display函数,但是结果是不同的。函数 t1.display()只能引用对象 t1中的数据成员,t2.display( )只能引用对象 t2 中的数据成员。尽管t1和t2都属于同一类,但t1的成员函数只能访问t1中的成员,而不能访问t2中的成员,反之亦然。
(2)在类外定义函数时,应指明函数在哪个作用城中(如void Time::set_time())。在成员函数引用本对象的数据成员时,只须直接写数据成员名,这时C++系统会把它默认为本对象的数据成员。也可以显式地写出类名并使用域运算符。如上面最后一个函数的定义也可以写成
void Time::show_time()
{
cout<<Time::hour<<" :"<<Time::minute<<" :"<<Time::sec<<endl; //加了类名限定
}
在执行时,会根据this指针的指向,输出当前对象中的数据成员的值。
(3)应注意区分什么场合用域运算符"::",什么场合用成员运算符".",不要搞混例如在主函数中调用set_time函数,不能写成
Time::set_time(); //错误
类型是抽象的,对象是具体的。定义成员函数时应该指定类名,因为定义的是该类中的成员函数,而调用成员函数时应该指定具体的对象名。后面不是跟域运算符"::",而是成员运算符"."。如
t1.set_time();
或
t2.set_time();