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 <类名>;