c++基础(纯虚函数)

作者 : 开心源码 本文共857个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共244人阅读

Cplusplus-tutorial-in-hindi.jpg

内容和代码接档此内容可以做为参考
c++基础(纯虚函数)

所谓纯虚函数就是在基类中这个虚函数只是证实并没有具体实现要求其子类来对其进行实现。
相似 java 中接口类和笼统类的笼统方法。

virtual std::string GetName()  = { return "Shape"};

将函数修改为

virtual std::string GetName() = 0;

这样函数 GetName 就变成了纯函数。

Shape *s = new Shape();

此时 Shape 类型变量 s 只能接受其子类的 Rect 的实例,并且在 Rect 类中必需实现GetName 这个虚函数。

Shape *s = new Rect("rectangle");

在 java 语言通过关键字提供 interface (接口)的定义,接口让类按行为进行分类。在 c++ 中没有提供像 interface 这样关键字让我们显式地定义接口,不过可以通过纯虚函数来实现相同功能。

void print(??? object){    std::cout << object.GetName() << std::endl;}

定义print接收一个具备GetName方法(也就是行为)的对象。
我们可以先通过定义存虚拟函数定义一个接口类 Printable

class Printable{  public:    virtual std::string GetName() = 0;};

这个类中只有纯虚函数,功能和 java 中类一样。
接下来让 print 接收一个 Printable 类型的对象作为参数

void print(Printable *obj){    std::cout << obj->GetName() << std::endl;}

创立一个继承 Printable 并实现纯虚函数的Printable的子类 A。

class A : public Printable{  public:    std::string GetName() override    {        return "A";    }};
 A *a = new A();    print(a);

以上就是通过虚函数实现了一个接口。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » c++基础(纯虚函数)

发表回复