C++中virtual(虚函数)和普通函数调用的不同
2017-09-01 21:45
337 查看
普通函数,定义指针调用里面的函数(父类和子类都有实现的同一个函数),如果父类(基类)调用的不是虚函数,由于调用的是非虚函数,所以在编译的时候是静态联编(即不管你之后这个类的指针指向哪个子类或父类的函数(非虚函数),它编译的时候编进去的只是当初声明这个指针的这个类,输出的函数也是这个类的函数(前提是那个函数是非虚函数))
虚函数,在基类中被virtual关键字修饰,也就是说,它是一个虚函数。虚函数最关键的特点是“动态联编”,它可以在运行时判断指针指向的对象,并自动调用相应的函数。所以声明了个某各类的指针后,指针指向那个类,调用那个类的虚函数,那么跑出来的就是那个类的函数的结果。
这是是原博客讲解的链接
虚函数,在基类中被virtual关键字修饰,也就是说,它是一个虚函数。虚函数最关键的特点是“动态联编”,它可以在运行时判断指针指向的对象,并自动调用相应的函数。所以声明了个某各类的指针后,指针指向那个类,调用那个类的虚函数,那么跑出来的就是那个类的函数的结果。
这是是原博客讲解的链接
相关文章推荐
- C++ 普通函数和虚函数调用的区别
- 关于C++虚函数与普通函数的编译与调用机制
- C++ 普通函数和虚函数调用的区别
- RGB 转换 Ycbcr 调用 C++和MATLAB中的函数,得到了两种不同的运算结果
- 什么是虚函数,虚函数和普通函数有何不同,带有虚函数的类什么时候都可以实例化吗?
- 从一道题谈C++中构造函数调用构造函数(像普通函数一样调用构造函数)
- c++ 普通函数、虚函数、纯虚函数的区别
- C++基础-虚函数/纯虚函数/普通函数
- C++从虚函数表的底层来看虚函数调用问题
- C++之普通成员函数、虚函数以及纯虚函数的区别与用法要点
- C/C++拾遗录--查看关于_declspec(naked)与普通的函数在寄存器变化方面的不同点
- 【C++】普通函数、虚函数和纯虚函数
- C++面试题1:构造函数和虚构函数中能否调用虚函数?
- C++中通过派生类调用第二基类的普通成员函数时this指针的调整
- 3.C++ 函数返回值、函数调用(普通、嵌套、递归调用)
- C++父类定义虚函数其派生类的同名函数使用virtual关键字吗?
- 虚函数的入口地址和普通函数有什么不同
- 6.Lua调用c++函数传递普通参数
- C++继承类和基类之间成员函数和虚函数调用机制
- C++之普通成员函数、虚函数以及纯虚函数的区别与用法要点