C++纯虚函数与抽象类

来源:互联网 发布:重庆正大软件学院 编辑:程序博客网 时间:2024/05/16 16:29

纯虚函数:

纯虚函数:在基类中将某一成员函数定为虚函数,并不是基类本身的需要,而是考虑到派生类的需

要,在基类中预留了一个函数名,具体功能留给派生类根据需要去定义。

纯虚函数是在声明虚函数时被“初始化”为0的函数。
一般形式为:
virtual 函数类型 函数名(参数列表)=0;
如:
virtual float area()const=0;
注意:
1、虚函数没有函数体;
2、最后面的“=0”并不表示函数的返回值为0,它只是起形式上的作用,告诉编译器“这是纯虚函

数”;
2、这是一个声明语句,最后应有分号;

要点:
1、纯虚函数只有函数的名字,而不具有函数的功能,不能被调用。可以说他是“徒有其表,而无

其实”。它只是通知编译系统:“这里声明一个虚函数,留待派生类中定义”。在派生类中对此函

数提供定义后,它才能具备函数的功能,可以被调用。
2、纯虚函数的作用是在基类中为其派生类保留一个函数名字,以便派生类根据需要对它定义。如

果在其基类中没有保留函数名字,则无法实现多态性。
3、如果在一个类中声明了纯虚函数,而在其派生类中没有对该函数定义,则该虚函数在派生类中

仍为纯虚函数。


抽象类:

抽象类:不要来定义对象,而只作为一种基本类型用作继承类。由于经常作为基类,通常称为抽象

基类。

注:
1、凡是包含纯虚函数的类都是抽象类。因为纯虚函数不能被调用,包含纯虚函数的类是无法建立

对象的。
2、抽象类的作用是作为一个类族的公共基类,或者说,为一个类族提供一个公共接口。
3、如果在抽象类所派生出的新类中对基类的所有纯虚函数进行了定义,那么这些函数就被赋予了

功能,可以被调用。这个派生类就不是抽象类,而是可以用来定义对象的具体类。
4、如果在派生类中没有对所有的虚函数进行定义,则此派生类仍是抽象类,不能用来定义对象。

原创粉丝点击