虚函数

来源:互联网 发布:高德导航数据更新不了 编辑:程序博客网 时间:2024/06/05 06:57

虚函数:

1)虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以

过基类指针或引用来访问基类和派生类中的同名函数

2C++规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数;因此在派生类重新声明该虚函数时,可以加virtual,也可以不加,但习惯上一般在每一层声明该函数时都加virtual,使程序更加清晰;

3)只能virtual声明类的成员函数,使它成为虚函数,而不能将类外的普通

函数声明为虚函数

4)如果用new运算符建立了临时对象,若基类中有析构函数,并且定义

了一个指向该基类的指针变量。在程序用带指针参数的delete运算符撤销对象时,会发生一个情况:系统会只执行基类的析构函数,而不执行派生类的析构函数,因此我们可以定义虚析构函数;一般都习惯声明虚析构函数,即使基类并不需要析构函数,也显式地定义一个函数体为空的虚析构函数,以保证在撤销动态分配空间时能得到正

确的处理

5)纯虚函数:

1>定义一般形式:virtual函数类型函数名 (参数表列) const =0;

2>如果在一个类中声明了纯虚函数,而在其派生类中没有对该函数定义,则

该虚函数在派生类中仍然为纯虚函数;

6)抽象类:

1>不用来定义对象而只作为一种基本类型用作继承的类,称为抽象类(abstract class ),由于它常用作基类,通常称为抽象基类(abstract base class );

2>凡是包含纯虚函数的类都是抽象类;

3>如果在派生类中没有对所有纯虚函数进行定义,则此派生类仍然是抽象类,

不能用来定义对象;

4>抽象类不能定义对象(或者说抽象类不能实例化),但是可以定义指向抽

象类数据的指针变量;

 

原创粉丝点击