当前位置: 首页 > 网络知识

C++快速入门 第二十四讲:抽象方法抽象方法(abstract method,也可以成为纯虚函数)

时间:2026-01-29 09:25:37

实例1:抽象方法应用

1 //int *pointer = new int;//声明一个整型指针,并在程序运行时将它指向分配的内存空间 2 //delect *pointer;//删除指针,释放内存 3 #include <iostream> 4 #include <string> 5 6 using namespace std; 7 8 class Pet//定义Pet类 9 ; 20 Pet::Pet(string theName) 21 24 void Pet::eat() 25 28 void Pet::sleep() 29 32 33 class Cat:public Pet//定义Cat类继承于Pet类 34 ; 41 Cat::Cat(string theName):Pet(theName)//Cat的构造函数继承于Pet类中的Pet(theName)函数 42 44 void Cat::climb() 45 48 void Cat::play() 49 52 53 class Dog:public Pet//定义Dog类继承于Pet类 54 ; 61 Dog::Dog(string theName):Pet(theName)//Dog的构造函数继承于Pet类中的Pet(theName)函数 62 64 void Dog::bark() 65 68 void Dog::play() 69 73 int main() 74

多态性:是指用一个名字定义不同的函数,调用同一个名字的函数,却执行不同的操作,从而实现传说中的“一个接口,多种方法”。

一般类的析构函数都是释放内存资源,如果析构函数不被调用的话将会造成内存泄漏。

析构器定义为虚方法是为了当一个基类的指针删除一个派生类的对象时,派生类的析构函数可以被正确调用。

当类里面有虚函数时,编译器会给类添加一个虚函数表,里面存放着虚函数指针。为了节省资源,只有当一个类被用来作为基类时,我们才把析构函数写成虚函数。

实例2:析构函数解析

1 #include <iostream> 2 //析构器都是虚方法 3 using namespace std; 4 5 class ClxBase//定义基类ClxBase 6 ; 12 virtual ~ClxBase()//析构器 ,如果其不为虚函数,则子类的析构函数将不被执行,将造成内存泄漏 13 ; 16 virtual void doSething()//定义抽象方法doSething 具体只需在继承类中声明实现即可(便可覆盖基类中定义),基类中可以不具体实现 17 20 }; 21 22 class ClxDerived:public ClxBase//定义子类ClxDerived继承于基类ClxBase 23 ; 29 ~ClxDerived()//子类析构器 30 ; 33 void doSething() 34 ; 37 }; 38 39 int main() 40


上一篇:C++快速入门 第二十一讲:静态属性和静态方法
下一篇:C++快速入门 第十三讲:联合、枚举和类型别名
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素