访问对象中的成员 口一般形式为:对象名成员名 class Clock { public: void show time(); void set_time(); private: int minute; int sec; 访问权限?冬 int hour; }clkl; L clkl.hour=11; clkl.show_time(); 只能访问public成员,而不能访 问privatel成员 11 访问对象中的成员 口通过指针引用对象中的成员 class Clock cin>>t.hour; cin>>t.minute; public:/数据成员是公用的 cin>>t.sec; int hour; int minute; int sec; p=&t;∥使p指向对象t ; 输出指向的对像中的成员数据 cout<<p->hour<<endl; void main() cout<<p->minute<<endl; cout<<p->sec<<endl; Clock t,*p;∥定义对象t和指针变量p 在p指向t的前提下,p->hour,(使p).hour和t.hour3三者等价 12 6
6 11 访问对象中的成员 class Clock { public: void show_time( ); void set_time( ); private: int minute; int sec; int hour; }clk1; clk1.hour=11; clk1.show_time(); 访问权限? 一般形式为: 对象名.成员名 只能访问public成员,而不能访 问private成员 12 访问对象中的成员 class Clock { public: //数据成员是公用的 int hour; int minute; int sec; }; void main() { Clock t,*p; //定义对象t和指针变量p cin>>t.hour; cin>>t.minute; cin>>t.sec; p=&t; //使p指向对象t //输出p指向的对象中的成员数据 cout<<p->hour<<endl; cout<<p->minute<<endl; cout<<p->sec<<endl; 在p指向t的前提下,p->hour,(*p).hour和 t.hour三者等价 通过指针引用对象中的成员
访问对象中的成员 口引用变量来访问对象中的成员 class Clock cin>>t1.hour; { cin>>t1.minute; public:∥数据成员是公用的 cin>>tl.sec; int hour; int minute; ∥定义引用变量2,并使之初始化为1 int sec; Clock &t2=t1; ; void mainO 1/输出对象t1中的成员数据 cout<<t2.hour<<endl; Clock t1;定义对象t1 cout<<t2.minute<<endl; cout<<t2.sec<<endl; 由于t2与t1共占同一段存储单元(即t2是t1的别名),因此t2.hour就是t1.hour。 白 类与对象应用-时钟类 #include <iostream> int main() using namespace std; class Clock Clock t1;/定义对象t1 t1.set_time(); public:∥公用成员函数 t1.show time(); void set_time(); C1ockt2;/定义对象t2 void show_time(); t2.set_time(); private::I数据成员为私有 t2.show_time(); int hour; return 0; int minute; int sec; 14 7
7 13 引用变量来访问对象中的成员 由于t2与t1共占同一段存储单元(即t2是t1的别名),因此t2.hour就是t1.hour。 cin>>t1.hour; cin>>t1.minute; cin>>t1.sec; //定义引用变量t2,并使之初始化为t1 Clock &t2=t1; //输出对象t1中的成员数据 cout<<t2.hour<<endl; cout<<t2.minute<<endl; cout<<t2.sec<<endl; class Clock { public: //数据成员是公用的 int hour; int minute; int sec; }; void main() { Clock t1 ; //定义对象t1 访问对象中的成员 14 类与对象应用-时钟类 #include <iostream> using namespace std; class Clock { public://公用成员函数 void set_time( ); void show_time( ); private: //数据成员为私有 int hour; int minute; int sec; }; int main( ) { Clock t1; //定义对象t1 t1.set_time( ); t1.show_time( ); Clock t2; //定义对象t2 t2.set_time( ); t2.show_time( ); return 0; }
类与对象应用-时钟类 void Time::set_time() /在类外定义set_time函数 cin>>hour; cin>>minute; cin>>sec; void Tim::show time() /在类外定义show timei函数 { cout<<hour<<":"<<minute<<":"<<sec<<endl; 15 静态数据成员 口静态数据成员实现同类的多个对象之间数据共享 class Clock public: int hour; private: int minute; int sec; staticint alarm hour;/把alarm hour定义为静态的数据成员 }; int Clock:alarm hour=0; /对静态数据成员初始化 各Clock对象中的alarm_hour的值是一样的,它为各对象所共有,而不只属于某 个对象的成员,所有对象都可以引用它。 16 8
8 15 void Time::set_time( ) //在类外定义set_time函数 { cin>>hour; cin>>minute; cin>>sec; } void Tim::show_time( ) //在类外定义show_time函数 { cout<<hour<<":"<<minute<<":"<<sec<<endl; } 类与对象应用-时钟类 16 静态数据成员 静态数据成员实现同类的多个对象之间数据共享 class Clock { public: int hour; private: int minute; int sec; static int alarm_hour;//把alarm_hour定义为静态的数据成员 }; int Clock::alarm_hour=0; //对静态数据成员初始化 各Clock对象中的alarm_hour的值是一样的,它为各对象所共有,而不只属于某 个对象的成员,所有对象都可以引用它
静态成员函数 口在类中声明函数的前面加static就成了静态成员函数,访问静态成员 class Clock public: int main( void set time(); static void show_time()片/声明静态成员函数 Clock t1; private: static int hour;/静态数据成员 t1.set_time(); static int minute; t1.show_time(); static int sec; Clock t2:; t2.show time(); int Clock::hour =10; int Clock::minute=30; 0 int Clock::sec=45: void Clock::set time() 124529 fcin>>hour>>minute>>sec; 12:45:29 void Clock::show time() 12:45:29 fcout<<hour<<":"<<minute<<":"<<sec<<endl;) 17 上海京通大学 1.类与类的封装 2.类的构造与析构 3.类的继承与派生 9
9 17 静态成员函数 在类中声明函数的前面加static就成了静态成员函数,访问静态成员 class Clock {public: void set_time( ); static void show_time( ); //声明静态成员函数 private: static int hour; //静态数据成员 static int minute; static int sec; }; int Clock::hour =10; int Clock::minute=30; int Clock::sec=45; void Clock::set_time( ) {cin>>hour>>minute>>sec;} void Clock::show_time( ) {cout<<hour<<":"<<minute<<":"<<sec<<endl;} 12 45 29 12:45:29 12:45:29 int main() { Clock t1; t1.set_time( ); t1.show_time( ); Clock t2; t2.show_time( ); } 18/48 1. 类与类的封装 2. 类的构造与析构 3. 类的继承与派生