第四讲 类与对象

OOP的四个基本特征(小结):

抽象:对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。

封装:将抽象出的数据及方法结合为一个整体的信息隐蔽技术。

继承:对具有层次关系的类的数据和操作进行共享的一种方式。

多态:不同的对象接受同一消息时产生不同的行动的现象。

类的声明形式

class 类名称

{

       public:

                 公有成员(外部接口)

       private:

                 私有成员

       protected:

                 保护型成员,与private类似,其差别表现在继承与派生时对派生类的影响不同

}

内联成员函数

为了提高运行时的效率,对于较简单的函数可以声明为内联形式。内联函数体中不要有复杂结构(如循环语句和switch语句)。
在类中声明内联成员函数的方式:将函数体放在类的声明中。使用inline关键字。

class Point

{

 public:

    inline void init(

         int initX,int initY)

    {

      x=initX;

      y=initY;

    }

    inline int getX( ) {return x;}

    inline int getY( ) {return y;}

 private:

    int x,y;

};

inline void
Point::

         Init(int initX,int initY)

{

    X=initX;

    Y=initY;

}

inline int
Point::getX( ) 

{

    return X;

}

inline int
Point::getY( ) 

{

    return Y;

}

对象

类名 对象名;

构造函数

Clock (int NewH, int NewM, int NewS);//构造函数声明

Clock::Clock(int NewH, int NewM, int NewS)

{

   Hour=H;

   Minute=M;

   Second=S;

}//实现

Clock c (0,0,0); //使用

拷贝构造函数

类名(类名 &对象名);//拷贝构造函数

初始化。

函数调用

返回

析构函数

    ~Point( );

Point::~Point( )

{

}

类组合

类名::类名(对象成员所需的形参,本类成员形参):对象1(参数),对象2(参数),......{ 本类初始化 }

构造函数调用顺序:先调用内嵌对象的构造函数(按内嵌时的声明顺序,先声明者先构造)。然后调用本类的构造函数。(析构函数的调用顺序相反)

若调用缺省构造函数(即无形参的),则内嵌对象的初始化也将调用相应的缺省构造函数。

前向引用声明

:前向引用声明只为程序引入一个标识符,但具体声明在其它地方。

class B;  //前向引用声明

class A

{  public:

      void f(B
b);

};

class B

{  public:

      void g(A
a);

};

类模板

template <模板参数表> 类声明

静态成员

在程序一开始运行时静态数据成员就必须存在

初始化与调用

<类名>::<静态成员函数名>(参数列表)

<类名>::<静态成员>

<数据类型> <类名>::<静态数据成员名>=<值>;

调用

– <类名>::<静态成员>

– 对象.<静态成员>

– 对象指针->静态成员

友元

friend <返回值类型>
<函数名>(<参数表>);

friend <类名>;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值