316使用类 对象说明(定义对象) 可以使用类在程序中定义变量,这种变量即为对象 Location a1,A2; 【例27】 Location类的一个完整程序,可上机。 #include <iostream.h> class Location i private intX,Y void main() public: Location Al,A2. void ini Al.init(5,3); int Getx A2init(6,8); int gety cout <<Al GetXo<<"<<Al. Get(<<endl; void location cout <<A2 GetXo<<"<<A2. Get(<<endl XiN;"1∥或 Y=init Location pAl, pA2 int Location: pAl=&Al; pA2=&A2; ireturn X; cout <<pAl->GetxO<<<<pAl->(<<endl; int Location: cout<<pA2->GetXO<<""<<pA2->GetY0<<endl; i return Y;
16 *3.1.6使用类 1. 对象说明(定义对象) 可以使用类在程序中定义变量,这种变量即为对象 Location A1,A2; 【例2.7】 Location 类的一个完整程序,可上机。 #include <iostream.h> class Location { private: int X, Y; public: void init(int initX, int initY) int GetX(); int GetY(); }; void Location::init(int initX, int initY) { X=initX; Y=initY; } int Location::GetX() { return X; } int Location::GetY() { return Y; } void main( ) { Location A1,A2; A1.init(5,3); A2.init(6,8); cout <<A1.GetX()<<" "<<A1.GetY()<<endl; cout <<A2.GetX()<<" "<<A2.GetY()<<endl; // 或 Location *pA1, *pA2; pA1=&A1; pA2=&A2; cout <<pA1->GetX()<<" "<<pA1->GetY()<<endl; cout <<pA2->GetX()<<" "<<pA2->GetY()<<endl; }
2.封装性 用 class定义类,实现了封装,C++中还可用 struct、 union等 3.类的存取控制 类的使用者有如下三种 ①类本身 ②一般用户 ③派生类 每一种使用者对类的数据有不同的权限 ① private ② public ③ protected 4类的私有成员 private 只有类本身或类的友元)可以存取私有成员。 要使类在程序中被使用,所以类必须至少有一个非私有成员。 类的公有成员 pubilc 在 public部分定义的内容允许被其它对象无限制地存取。另外 C++可以有限制地使用 public成员存取 private成员。17
17 2. 封装性 用 class 定义类,实现了封装,C++中还可用struct、union等 3. 类的存取控制 类的使用者有如下三种: ① 类本身 ② 一般用户 ③ 派生类 每一种使用者对类的数据有不同的权限 ① private ② public ③ protected 4. 类的私有成员 private 只有类本身(或类的友元)可以存取私有成员。 要使类在程序中被使用,所以类必须至少有一个非私有成员。 5. 类的公有成员 pubilc 在public部分定义的内容允许被其它对象无限制地存取。另外 C++可以有限制地使用 public成员存取private成员
【例】使用类,设计模似数字式时钟的程序 一般较大的程序用模块化的方法,分成三个文件 ①h文件,用来描述类。 ②*,cp文件,用来实现类,其中是成员函数的定义。 ③*,Cp文件,用来写main(函数。 l/clock.h class Clocki private. int hour minute second public: void inito void update; void display 18
18 【例】使用类,设计模似数字式时钟的程序 一般较大的程序用模块化的方法,分成三个文件 ① *.h 文件,用来描述类。 ② *.cpp 文件,用来实现类,其中是成员函数的定义。 ③ *.cpp 文件,用来写 main( ) 函数。 //clock.h class Clock{ private: int hour,minute,second; public: void init(); void update(); void display(); };
//clock.cpp #include <iostream.h> #include "clock. h void Clock init( i hourminute=secand=0; void Clock update( i second++ if(second==60)i second=0; minute++ if(minute==60)( minute=0; hour++) if(hour--24 )hour=0 void Clock display i cout<< hour<<<<minute<<<<second<<endl
19 //clock.cpp #include <iostream.h> #include "clock.h" void Clock::init() { hour=minute=secind=0; } void Clock::update() { second++; if(second==60){ second=0; minute++;} if(minute==60){ minute=0; hour++;} if(hour==24) hour=0; } void Clock::display() { cout<<“hour<<“:”<<minute<<“:”<<second<<endl; }
//mymain cpp # nclodeclock. cpp void maino t Clock clock, clock B; cout<<CLOCK A: <<endl clock init(; for(int i=0; i <10; i++) i clock update; clock display o; cout<<clocK B: <<end: clock inito for(i=0;i<20;i++) i clock.update; clock display 20
20 //mymain.cpp #inclode "clock.cpp" void main( ) { Clock clockA, clockB; cout<<"CLOCK A:"<<endl; clockA.init(); for(int i=0;i<10;i++) { clockA.update(); clockA.display(); } cout<<"CLOCK B:"<<endl; clockB.init(); for(i=0;i<20;i++) { clockB.update(); clockB.display(); } }