大佬教程收集整理的这篇文章主要介绍了c – 虚拟表的顺序是否重要?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class A { public: A() {Cout <<"1" << endl;}; A (const A& s) {Cout << "2" << endl;} ~A () {Cout << "3" << endl;} void f1() {Cout << "4" << endl; f2();} virtual void f2() = 0; virtual void f3() {Cout << "5" << endl;} }; class B : public A { public: B() {Cout << "6" << endl;} B(const B& b) : A(b) {Cout << "7" << endl;} ~B() {Cout << "8" << endl;} virtual void f1() {Cout<<"9"<<endl;} void f2() {Cout<<"lO"<<endl; f4();} virtual void f2(int i) {Cout << "11" << endl;} virtual void f4() {Cout << "12" << endl; f3();} };
他说这个命令是:
A's vtable : A::f2() A::f3() B's vtable : B::f2() A::f3() B::f1() B::f2(int) B::f4()
但我不明白为什么这很重要?他说,如果是这样的话,这个vtable是没用的
不是按照正确的顺序,你能解释一下为什么吗?
以上是大佬教程为你收集整理的c – 虚拟表的顺序是否重要?全部内容,希望文章能够帮你解决c – 虚拟表的顺序是否重要?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。