C++之纯虚函数原理

Posted 小懵白生活小趣谈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++之纯虚函数原理相关的知识,希望对你有一定的参考价值。

This browser does not support music or audio playback. Please play it in Weixin or another browser.


在上一篇文章中,IT_小懵白为大家讲解虚函数的原理。
今天就为大家继续讲解一下关于:C++之纯虚函数
C++之纯虚函数原理


纯虚函数其实就是一个没有函数体的虚函数,通常在声明时赋值为0

class Try_it{  public:       virtual void show()=0;       virtual void get_In()=0;      private:    int key;     }; //抽象类,不能直接声明为对象
其作用是:为了实现一个接口,起到一个规范的作用,要求任何派生类都要定义该函数的实现方法.
而且用户是不能创建类的实例,只能创建它的派生类的实例.
但凡包含纯虚函数的类都称为抽象类,而抽象类的作用是作为一个类族的共同基类,为一个类族提供公共接口。
例如:
#include<iostream>#include <string>
using namespace std;
class Student{
public: virtual void show()=0; Student():name("Tom"),age(20),class_("class_one"){ };
protected: string name; int age; string class_;};
class Information:public Student{ public: virtual void show(){ cout<<"学校:"<<name_<<",学生:"<<name<<",年龄:"<<age<<",班级:"<<class_<<endl; };
Information():name_("BeiJin"){ };
private: string name_;
};
int main(){
Information data; data.show();
return 0;}
在该代码中,学生的个人信息是通过调用其子类的重写函数show()实现的,但需注意的是 抽象类不能实例化出对象

C++之纯虚函数原理


那么纯虚函数的接口作用,怎么样去实际应用起来?这是一个好问题。
这就涉及到了比较高级的操作了,C++的COM实现——组件对外公布的接口,可以看得出其高度的可重用性 和 内存兼容性的作用。
有兴趣的小伙伴们可以在网上搜索:C++之COM编程
这里的话因为不能进行外部超链接,所以的话有机会小懵白下次给大家介绍一下。



最后的话, 给大家总结一下虚函数与纯虚函数的一些区别:
纯虚函数是一个没有函数体的虚函数,声明 赋值为0,而虚函数不代表函数为不被实现的函数;
虚函数可以指向基类的指针来调用子类的该函数,而纯虚函数是为了实现接口;
拥有纯虚函数的类称为抽象类,是不能创建类的对象,只能创建其派生类的实例;
好了,今天就讲到这里了,感兴趣的小伙伴们记得点个赞哦!


以上是关于C++之纯虚函数原理的主要内容,如果未能解决你的问题,请参考以下文章

c++中的纯虚函数机制如何从DLL中暴露函数

Hello,C++纯虚函数和抽象类

C++纯虚函数和抽象类

C++ 纯虚函数和抽象类

C++ 纯虚函数和抽象类

C++ 纯虚函数