C++ - 虚函数(virtual function) 的 使用范围
来源:互联网 发布:qsv转换mp4软件 编辑:程序博客网 时间:2024/06/05 10:33
虚函数(virtual function) 的 使用范围
本文地址: http://blog.csdn.net/caroline_wendy/article/details/15982647
虚函数(virtual function) 在 基函数(base function) 和 派生函数(derived function) 之间可以覆写(override);
如果派生函数有与虚函数同名的函数, 则会隐藏虚函数, 但是虚函数还会在;
由于派生对象和基对象可以转换, 可以只使用基对象部分; 派生对象的虚函数会覆写基对象的虚函数;
代码:
/* * cppprimer.cpp * * Created on: 2013.11.13 * Author: Caroline *//*eclipse cdt, gcc 4.7.1*/#include <iostream>class Base {public:virtual int fcn () { //虚函数std::cout << "This base class [int fcn()]. " << std::endl;return 0;}};class D1 : public Base {public:int fcn (int) { //与基类的参数不同, 不是重载虚函数std::cout << "This derived 1 class [int fcn(int)]. " << std::endl;return 0;}virtual void f2 () { //虚函数std::cout << "This derived 1 class [f2()]. " << std::endl;}};class D2 : public D1 {public:int fcn (int) { //隐藏基函数的同名函数std::cout << "This derived 2 class [int fcn(int)]. " << std::endl;return 0;}int fcn () { //重载基类的虚函数std::cout << "This derived 2 class [int fcn()]. " << std::endl;return 0;}void f2 () {std::cout << "This derived 2 class [f2()]. " << std::endl;}};int main (void) {Base bobj;D1 d1obj;D2 d2obj;Base *bp1 = &bobj, *bp2 = &d1obj, *bp3 = &d2obj;bp1->fcn();bp2->fcn(); //未找到重载版本, 则使用基函数版本bp3->fcn(); //D2使用的是重载版本D1 *d1p = &d1obj;D2 *d2p = &d2obj;d1p->f2();d2p->f2();D1 *p1 = &d2obj;D2 *p2 = &d2obj;p1->fcn(10);p2->fcn(10);return 0;}
输出:
This base class [int fcn()]. This base class [int fcn()]. This derived 2 class [int fcn()]. This derived 1 class [f2()]. This derived 2 class [f2()]. This derived 1 class [int fcn(int)]. This derived 2 class [int fcn(int)].
- C++ - 虚函数(virtual function) 的 使用范围
- 虚函数(virtual function)
- C++的虚函数 Virtual Function
- C++——中的虚函数(Virtual function)
- 虚函数(virtual function)
- C++虚函数virtual function
- c++ virtual function 虚函数
- pure virtual function call--虚函数调用的错误
- 理解虚函数( virtual function )的几个关键点: 转载
- 理解虚函数( virtual function )的几个关键点(转载)
- C++中的虚函数(virtual function)
- C++中的虚函数(virtual function)
- C++中的虚函数(virtual function)
- C++中的虚函数(virtual function)
- C++中的虚函数(virtual function)
- C++中的虚函数(virtual function)
- C++中的虚函数(virtual function)
- C++中的虚函数(virtual function)
- 泯灭Web App可用性的七个开发错误
- 波导强势回归,能否重夺“战斗机”称号?
- Linux下查看一个文件的类型
- Virtual-Key Codes
- 1统计输入的字符串的字符个数
- C++ - 虚函数(virtual function) 的 使用范围
- 基于lmbp神经网络的效能评估
- android学习之路-1-初步环境建立
- 一个进程的输出结果在另一个进程中显示
- java---字符串操作(连接,获取信息,比较,替换)
- AJAX.1.AJAX简介
- 数据库基础知识
- OC之文件管理NSFileHandle
- Mendeley不能首次登陆的解决办法