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

C++快速入门 第二十三讲:虚方法

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

TIPS:

引发问题的源头是我们使用了new在程序运行的时候才为dog和cat分配Dog类型和Cat类型的指针。这些都是它们在运行时才分配的类型,和它们在编译时的类型是不一样的。

如果拿不准要不要把某种方法声明为虚方法,那么就把它声明为虚方法好了。

在基类里把所有的方法都声明为虚方法会让最终的可执行代码的速度变得稍微慢一些,但好处是可以一劳永逸地确保程序的行为符合你的预期。

实例:虚方法的运用

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 void Pet::play() 33 36 37 class Cat:public Pet//定义Cat类继承于Pet类 38 ; 45 Cat::Cat(string theName):Pet(theName)//Cat的构造函数继承于Pet类中的Pet(theName)函数 46 48 void Cat::climb() 49 52 void Cat::play() 53 56 57 class Dog:public Pet//定义Dog类继承于Pet类 58 ; 65 Dog::Dog(string theName):Pet(theName)//Dog的构造函数继承于Pet类中的Pet(theName)函数 66 68 void Dog::bark() 69 72 void Dog::play() 73 77 int main() 78


上一篇: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种方法技巧

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