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


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++快速入门 第三十二讲:assert函数和捕获异常


C/C&#x2B;&#x2B;
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图