当前位置: 首页> 汽车> 车展 > 广告公司简介ppt_京东alexa排名_微信推广平台哪里找_搭建一个网站需要多少钱

广告公司简介ppt_京东alexa排名_微信推广平台哪里找_搭建一个网站需要多少钱

时间:2025/7/12 5:30:52来源:https://blog.csdn.net/2401_88249494/article/details/144326096 浏览次数: 0次
广告公司简介ppt_京东alexa排名_微信推广平台哪里找_搭建一个网站需要多少钱

虚函数:在函数前加关键字:virtual,函数变成虚函数

纯虚函数:函数体为0的虚函数叫做纯虚函数

抽象类:有纯虚函数的类叫做抽象类(纯虚类),抽象类不能创建对象,如果子类没有重写父类的纯虚函数,那么子类也是抽象类,抽象类,一般作为基类,虚函数在虚表中存放的是函数地址,纯虚函数在虚表中存放的是 0(虚表指针在我发的C++中的多态性中有介绍)

 #include<iostream>#include<string>#include<vector>using namespace std;class Animal{public:virtual void speak() = 0; //纯虚函数 };class cat :public Animal{public:virtual void speak(){cout << "cat speak" << endl;}};void speak(Animal *a){a->speak();}int main() {speak(new cat());//打印出来的是 cat speakreturn 0;}

虚析构和纯虚析构

析构函数在继承关系中,编译器会将子类和父类的析构函数名字改为一样的,造成函数隐藏,下面代码的a是A类型的,所以会调用父类的析构函数,子类的不会调用。

让父类的析构函数是虚函数,这样就发生重写,这样调用的析构是子类的析构,会在子类的析构函数里面去调用父类的析构

#include<iostream>#include<string>#include<vector>using namespace std;class Animal{public:Animal(){cout << "animal构造" << endl;}virtual ~Animal(){cout << "animal析构" << endl;}};class cat :public Animal{public:cat(){cout << "cat构造" << endl;}~cat(){cout << "cat析构" << endl;}};int main() {Animal *a = new cat;delete a;return 0;}

纯虚函数的意义:

它为派生类提供了一个必须实现的接口规范。也就是说,派生类如果继承了包含纯虚函数的基类,就必须为这个纯虚函数提供具体的实现。

抽象类的意义:

抽象类是至少包含一个纯虚函数的类。

1.它提供了一个通用的抽象概念,为相关的类定义了一个公共的接口和框架。

2.强制派生类按照特定的方式实现某些功能。由于抽象类包含未实现的纯虚函数,所以不能创建抽象类的对象。但是可以通过指向抽象类的指针或引用操作派生类对象。

3.有助于实现代码的分层和模块化设计,提高代码的可维护性和可扩展性。不同的派生类可以根据具体需求实现抽象类中定义的接口,从而实现多态性。

关键字:广告公司简介ppt_京东alexa排名_微信推广平台哪里找_搭建一个网站需要多少钱

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: