谭浩强《C++程序设计》学习篇———虚函数
来源:互联网 发布:怎么淘宝 卖 二手书 编辑:程序博客网 时间:2024/05/29 10:49
谭浩强《C++程序设计》学习篇———虚函数
一、定义
定义:在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。
语法:virtual 函数返回类型函数名(参数表) { 函数体 }
用途:实现多态性,通过指向派生类的基类指针,访问派生类中同名覆盖成员函数 虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public。
定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。
二、作用
当把基类的某个成员函数声明为虚函数后,允许其在派生类中对该函数重新定义,赋予其新的功能,并且可以通过指向基类的指针指向同一类族中不同类的对象,从而调用其中的同名函数。
由虚函数实现的动态多态性就是:同一类族中不同类的对象,对同一函数调用作出不同的响应。
三、动态关联
基类指针变量先指向了某一个类对象,然后通过此指针调用该对象中的函数,这样的调用在编译时是无法确定调用哪一个类的虚函数的,所以在运行阶段确定关联关系。
这种多态性是动态多态性,即运行阶段的多态性。
虚析构函数:
(截图来自谭浩强《C++程序设计》
p是指向基类的指针变量,指向new开辟的动态存储空间,当基类中的析构函数没有声明为virtual时,只会执行Point的析构函数,如果希望能先执行Circle的析构函数,需要将基类的析构函数声明为virtual.
四、纯虚函数
定义:基类中声明一个虚函数,留待派生类中定义
语法:virtual 函数类型函数名(参数列表)=0
作用:在基类中为派生类保留一个函数的名字,以便派生类根据需要对它进行定义
0 0
- 谭浩强《C++程序设计》学习篇———虚函数
- 《Objective-C程序设计》学习笔记——语法篇
- 网易云课堂程序设计入门—C语言第五周 函数学习笔记
- C语言高级程序设计——函数指针
- 《C语言及程序设计》实践参考——Bessel函数
- 《C语言及程序设计》实践项目——函数起步
- 《C语言及程序设计》程序阅读——函数起步
- 《C语言及程序设计》程序阅读——函数应用
- 《C语言及程序设计》实践项目——函数应用
- 《C语言及程序设计》程序阅读——递归函数
- 《C语言及程序设计》实践项目——递归函数
- 《C语言及程序设计》实践参考——递归函数
- C/C++程序设计——指针与函数
- 《高质量程序设计指南——C/C++》第6章 C/C++函数设计基础
- C语言学习—函数
- C程序设计笔记——第一章 程序设计和C语言
- CGI——C程序设计
- 《C 程序设计》——>基本概念
- Spring MVC详解(四)接口控制器详解(2)
- Highcharts帮助文档和实际代码不一致
- os x系统代码签名机制
- POJ 2318 TOYS(计算几何)
- JSON.stringify 语法实例讲解
- 谭浩强《C++程序设计》学习篇———虚函数
- (转)程序出现Access violation - code c0000005 (first chance)的解决方法
- 模版小结2
- [字典树]hihocoder #1014 Trie树
- 正则表达式、JAVA线程
- Android Volley完全解析(一),初识Volley的基本用法
- Qt 安装包制作
- [转]Internet Explorer已限制此网页运行可以访问计算机的脚本或ActiveX控件
- Apache Shiro 使用手册(五)Shiro 配置说明