2316使用类 1.对象说明(定义对象) 可以使用类在程序中定义变量,这种变量即为对象 Location a1,A2; 【例27】 Locati0n类的一个完整程序,可上机。 #include <iostream.h> class location i private: int X, void main( public: Location Al,A2. void init Al init(5, 3); int Get int gety A2 init(6, 8); cout <<Al GetXo<<<<AlGetY(<<endl void location cout <<A2 GetXo<<l<<A2. GetYo<<endl X=inx;"∥或 Y=init Location *pAl, pA2; int Location: pAl=&Al; pA2=&A2; freturn X; cout <<pAl->GetXo<<<<pAl->GetY(<<endl int Location: i cout<<pA2->GetXO<<""<<pA2->GetYO<<endl freturn 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.类的私有成员 pl rivate 只有类本身(或类的友元)可以存取私有成员。 要使类在程序中被使用,所以类必须至少有一个非私有成员。 5类的公有成员 bile 在 publici部分定义的内容允许被其它对象无限制地存取。另外 C++可以有限制地使用 public成员存取 private成员。17
17 2. 封装性 用 class 定义类,实现了封装,C++中还可用struct、union等 3. 类的存取控制 类的使用者有如下三种: ① 类本身 ② 一般用户 ③ 派生类 每一种使用者对类的数据有不同的权限 ① private ② public ③ protected 4. 类的私有成员 private 只有类本身(或类的友元)可以存取私有成员。 要使类在程序中被使用,所以类必须至少有一个非私有成员。 5. 类的公有成员 pubilc 在public部分定义的内容允许被其它对象无限制地存取。另外 C++可以有限制地使用 public成员存取private成员
【例】使用类,设计模似数字式时钟的程序 一般较大的程序用模块化的方法,分成三个文件 ①*h文件,用来描述类。 ②*cpp文件,用来实现类,其中是成员函数的定义。 ③*cpp文件,用来写main()函数。 //clock class Clockt private int hour minute second pl publica void inito void updated; void display;
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( f hour=minute=secand=0; void Clock: update i second++ if(second==60) second=0; minute++ if(minute==60) minute=0; hour++; i if(hour=24)hour=0 void Clock: display( {cout<hour<<“:”<< minute<≤:”< second<<endl; 19
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 inclose"clock,cpp void maino i Clock clock, clock B; cout<<CLOCKA: <<endl clock init(; for(int i=0; i<10; i++) i clock update; clock display; cout<<ClocK B: <<end clock inito; for(i=0;<20;++) i clock update; clockS. display
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(); } }