C++中虚函数和普通函数的区别
来源:互联网 发布:金融行业的网络推广 编辑:程序博客网 时间:2024/06/05 15:17
虚函数跟普通函数的区别就是当基类指针或引用指向派生类对象时,通过指针或引用调用成员函数,对于非虚函数,调用的是静态类型(指针/引用类型)的版本,对于虚函数,在运行时动态绑定,调用的是实际类型的版本。例子看输出的前两行。
#include "stdafx.h"#include <iostream>using namespace std;class A{public:virtual void test(){cout<<"A:test()"<<endl;};void foo(){ cout<<"A:foo()"<<endl;};};class B : public A{public:void test(){cout<<"B:test()"<<endl;};void foo(){cout<<"B:foo()"<<endl;};};int _tmain(int argc, _TCHAR* argv[]){A* a = new B;a->test();//虚函数,动态绑定,调用动态类型(实际对象类型)B版本a->foo();//非虚函数,调用静态类型(指针类型)A的版本B* b = new B;b->test();//虚函数,动态绑定,调用动态类型B版本b->foo();//非虚函数,调用静态类型(指针类型)A的版本b->A::foo();//这两个指定是调用A类版本b->A::test();return 0;}
0 0
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- C++中虚函数和普通函数的区别
- c中静态函数和普通函数区别
- C语言中static修饰的函数和普通函数的区别
- js中普通函数和构造函数的区别
- Javascript中普通函数和构造函数的区别
- 内联函数和普通函数的区别
- 宏函数和普通函数的区别
- 内联函数和普通函数的区别
- 箭头函数和普通函数的区别
- C++ 普通函数和虚函数调用的区别
- static 和普通函数的区别
- 安卓四大组件之--广播接受者
- 多继承sizeof的求解
- android 地图开发
- shell学习3:文本处理工具
- 好-纹理和材质区别总结
- C++中虚函数和普通函数的区别
- cocos2d初级篇笔记三
- 破解mysql root密码
- 【3】QQ 聊天界面
- Java常用类二
- UVA 10003 Cutting Sticks 区间DP
- uva 工具网站
- 【安卓新人】 官网项目开发说明部分翻译
- eclipse 配置 tomcat 8.0