首页 > 代码库 > 多态性,友元与静态成员 基础知识小结

多态性,友元与静态成员 基础知识小结

1.

功能晚绑定时运行时完成。

class Point

{

public:

  virtual double Area(){}

  ...

}

class Circle:public Point

{

public:

  double Area(){}    //仍为虚函数,重定义时virtual可写也可不写

}

double CalcArea(Point &ref){}

//程序运行时根据ref所引用的对象调用该对象的成员函数。

虚函数不能是友元,静态函数,不能是内联,构造函数。可以是析构函数。

2.

纯虚函数:

virtual 函数类型 函数名() = 0;

各派生类根据要求再重新定义这些虚函数。

抽象类(至少含一个纯虚函数)只能作为其它类的基类,不能建立对象,抽象类中可以定义普通函数。

3.

友元:

class Date;

class Clock;

class Clock

{

public:

  friend void Display(Clock &);

}

class Date

{

public:

  friend void Clock::Display(Date &);

}

也可以友元类:

friend 类名;

4.

静态成员:

static int sum;

static int Display();

它为类的所有对象共享,在所有对象外单独开辟空间,即使不定义对象,也分配空间(编译时)。

静态成员初始化:

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

不能再类声明中初始化。

静态成员函数不能默认访问本类的非静态成员,没有this指针。

访问方式:

class Student;

Student s1;

Student::sum ;

或s1.sum ;

 

多态性,友元与静态成员 基础知识小结