1 类是一种用户自定义类型,声明形式: 2 class 类名称 3 { 4 public: 5 公有成员(外部接口) 6 private: 7 私有成员 8 protected: 9 保护型成员 10 } 11 12 13 钟表类: 14 class Clock 15 { 16 public: void SetTime(int NewH,int NewM,int NewS); 17 void ShowTime(); 18 private: int Hour,Minute,Second; 19 }; 20 void Clock :: SetTime(int NewH, int NewM, int NewS) 21 { 22 Hour=NewH; 23 Minute=NewM; 24 Second=NewS; 25 } 26 void Clock :: ShowTime() 27 { 28 cout<<Hour<<":"<<Minute<<":"<<Second; 29 } 30 31 32 33 在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。 34 35 在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。 36 37 protected与private类似,其差别表现在继承与派生时对派生类的影响不同。 38 39 40 成员数据:与一般的变量声明相同,但需要将它放在类的声明体中。 41 成员函数:在类中说明原形,可以在类外给出函数体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形成内联成员函数。 42 允许声明重载函数和带默认形参值的函数 43 44 内联成员函数 : 45 class Point 46 { 47 public: 48 void Init(int initX,int initY) 49 { 50 X=initX; 51 Y=initY; 52 } 53 int GetX() {return X;} 54 int GetY() {return Y;} 55 private: 56 int X,Y; 57 }; 58 或者 59 class Point 60 { 61 public: 62 void Init(int initX,int initY); 63 int GetX(); 64 int GetY(); 65 private: 66 int X,Y; 67 }; 68 inline void Point:: Init(int initX,int initY) 69 { 70 X=initX; 71 Y=initY; 72 } 73 74 inline int Point::GetX() 75 { 76 return X; 77 } 78 79 inline int Point::GetY() 80 { 81 return Y; 82 } 83 84 85 86 类中成员互访 87 直接使用成员名 88 类外访问 89 使用“对象名.成员名”方式访问 public 属性的成员 90 #include<iostream> 91 using namespace std; 92 class Clock 93 { 94 ......//类的声明略 95 } 96 //......类的实现略 97 void main(void) 98 { Clock myClock; 99 myClock.SetTime(8,30,30); 100 myClock.ShowTime(); 101 } 102 103 104