[C++] 如何不用虚函数实现多态
2011-07-21 22:01
337 查看
#include "stdafx.h" typedef void (*fVoid)(); class A { public: static void test() { printf("hello A\n"); } fVoid print; A() { print = A::test; } }; class B : public A { public: static void test() { printf("hello B\n"); } B() { print = B::test; } }; int main() { A aa; aa.print(); B b; A* a = &b; a->print(); getchar(); return 0; } 这样做的好处主要是绕过了vtable。我们都知道虚函数表有时候会带来一些性能损失。 |
相关文章推荐
- [C++] 如何不用虚函数实现多态
- [C++] 如何不用虚函数实现多态
- C++多态如何实现 | sys_brk原理
- 【C++ STL应用与实现】22: 函数组合之1:如何使用std::bind (since C++11)
- C++ 多态中虚函数实现原理分析
- 晒晒C++:虚函数的真相(VC编译器如何实现“virtual ”规则)
- (转)如何在linux C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理
- 仅返回类型不同的函数,在C++中如何实现重载?
- 通过实验了解C++中的类是如何实现多态
- 抱歉,没分了!!!请教linux下,用C/C++编程,如何知道我要实现某一功能需要用到什么函数
- C++中的多态与虚函数的内部实现
- 如何在linux C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理(转)
- [C/C++标准库]_[初级]_[如何实现std::string自己的Format(sprintf)函数]
- C++多态的实现原理,C++中虚函数和多态
- C++的多态如何在编译和运行期实现
- C++中利用虚函数实现多态
- C++中的多态在C中如何实现
- 晒晒C++:虚函数的真相(VC编译器如何实现“virtual ”规则)
- 仅返回类型不同的函数,在C++中如何实现重载?
- C++中的虚函数的作用主要是实现了多态的机制