87C面向对象程序设计举例
这里我们将通过几个简单的例子来演示如何站在面向对象的角度设计程序,以及使用类的好处。 【例8.1]最简单的例子。 #include using namespace std; class Time 〃定义 Time 类 { public : 〃数据成员为公用的 int hour; int minute; int sec; ); int main() ( Time tl;〃定义tl为Time类对象 cin> >tl.hour;〃输入设定的时间 cin>>tl.minute; cin>>tl.sec; 〃输出时间: cout>tl.hour;//向tl的数据成员输入数据 cin>>tl.minute; cin>>tl.sec; coutt2.hour;//向t2的数据成员输入数据 cin>>t2.minute; cin>>t2.sec; cout>t.minute; cin>>t.sec; ) void show_time(Time 〃输出对象中的数据 } 运行情况与程序(a)相同。 3) 程序(c) 可以对上面的程序作一些修改,数据成员的值不再由键盘输入,而在调用函数时由实参给出,并在函数中 使用默认参数。将程序(b)第8行以下部分改为: int main() ( void set_time(Time//函数声明 void show_time(Time//函数声明 Time tl; set_time(tl,12,23,34);〃通过实参传递时、分、秒的值 show_time(tl); Time t2; set_time(t2);〃使用默认的时、分、秒的值 show_time(t2); return 0; } void set_time(Time t.minute=minute; t.sec=sec; } void show_time(Time } 程序运行时的输出为: 12:23:34 (tl中的时、分、秒) 0:0:0 (t2中的时、分、秒) 以上两个程序中定义的类都只有数据成员,没有成员函数,这显然没有体现出使用类的优越性。在下面的 例子中,类体中就包含了成员函数。 [例8.3】将例8.2的程序改用含成员函数的类来处理。 #include using namespace std; class Time ( public : void set_time();〃公用成员函数 void show_time();//公用成员函数 private : 〃数据成员为私有 int hour; int minute; int sec; ); int main() Time tl;〃定义对象tl tl.set_time();//调用对象tl的成员函数set_time ,向tl的数据成员输入数据 tl.show_time();〃调用对象tl的成员函数showjime ,输出tl的数据成员的值 Timet2;〃定义对象t2 t2.set_time();//调用对象t2的成员函数set_time ,向t2的数据成员输入数据 t2.show_time();〃调用对象t2的成员函数showjime ,输出t2的数据成员的值 return 0; ) void Time::set_time() 〃在类外定义 set_time 函数 ( cin> >hour; cin> >minute; cin>>sec; }