类的成员
- class Clock
- {
- public:
- void SetTime(int NewH,int NewM, int NewS); //SetTime是成员函数
- void ShowTime();
- private:
- int Hour,Minute,Second; //成员数据(内部的)
- };
- void Clock::SetTime(int NewH,int NewM ,int News)
- {
- Hour = NewH;
- Minute =NewM;
- Second=NewS;
- }
- void Clock::ShowTime() //ShowTime是属于Clock这个类的用”::”链接,返回值是void
- {
- cout <<Hour<<”:”<<Minute<<”:”<<Second;
- }
成员函数
在类中说明原形,可以在类外给出函数体实现,并在函数名前使用类名加以限定,也可以直接在类中给出函数体,形成内联函数。
允许声明重载函数和带缺省形参值的函数。
class Clock
//类内:
{
void SetTime() //这个就是原形
}
//类外: {
void clock::SetTime() //这就是实现,clock::就是限定
内敛成员函数:
为了提高运行效率,对于较简单的函数可以声明为内联形式。
内联函数中部要有复杂结构(循环和switch)
在类中声明内敛成员函数的方式:
-将函数体放在类的声明中----隐式
使用inline关键字----显式
内联成员函数举例(一)
- class Point
- {
- public:
- void Init(int initX,int initY)
- {
- X=initX;
- Y=initY;
- }
- int GetX( ) {return X;} //return就可以知道x的值,这个就是内敛函数,在类内实现
- int GetY( ) {return Y;}
- private:
- int x,y;
- };
内敛成员函数举例(二)
- class Point
- {
- public:
- void Init(int initX, int initY);
- int GetX();//类内没有实现部分,只有原型
- int GetY();
- private:
- int X,Y;
- };
- //实现部分在后面
- inline void Point::
- init (int initX, int initY)
- {
- X=initX;
- Y=initY;
- }
- inline int Point ::GetX( ) //关键词inline声明为内联函数,一运行的时候就先调用到内存
- {
- return X;
- }
- inline int Point :: GetY( )
- {
- return Y;
- }
对象
- class Point
- {
- public:
- void Init(int initX, int initY);
- int GetX();//类内没有实现部分,只有原型
- int GetY();
- private:
- int X,Y;
- };
- //实现部分在后面
- inline void Point::
- init (int initX, int initY)
- {
- X=initX;
- Y=initY;
- }
- inline int Point ::GetX( ) //关键词inline声明为内联函数,一运行的时候就先调用到内存
- {
- return X;
- }
- inline int Point :: GetY( )
- {
- return Y;
- }
对象是该类的某一特定实体,即类类型的变量。
Point是类,那么A(x,y)就是类Point的对象。
对象一定是对某一个类而言的。
也可以把int x,y理解成int是类,xy是对象。
描述方式:
类名 对象名;
如:Clock myClock
类中成员的访问方式
类内成员调用(使用):
大家都是一个类的,则直接使用成员名即可。
类外使用成员
使用“对象名.成员名”方式访问public属性的成员,一定要是public,否则只能类内使用。
例4-1 类的应用举例
- #include <iostream.h>
- class Clock
- {
- …//类的声明
- {
- //…..类的实现
- void main(void)
- { Clock myClock; //变量声明,myclock定义为Clock类里面的
- myClock.setTime(8,30,30); //对myclock这个始终进行设置时间
- myClock.ShowTime( );
- }