受欢迎的网站建设平台,公司企业模板,百度上首页,wordpress跑一亿数据1如果父子类虚函数都有默认参数#xff0c;这种情况下根据指针类型来调用对应函数2构造过程中#xff0c;虚表还没有建立#xff0c;此时在构造或析构函数中调用虚函数为静态调用3const类型函数和非const类型函数不构成覆盖(多态)4返回类型… 1如果父子类虚函数都有默认参数这种情况下根据指针类型来调用对应函数2构造过程中虚表还没有建立此时在构造或析构函数中调用虚函数为静态调用3const类型函数和非const类型函数不构成覆盖(多态)4返回类型不同不构成覆盖(多态)但可以为子类对象的指针或引用通过虚表调用函数:typedef void (*PFUNC)(void);typedef PFUNC* PVTAB;class A {public:virtual void foo (void) {cout A::foo() invoked endl;}virtual void bar (void) {cout A::bar() invoked endl;}};class B : public A {public:void foo (void) {cout B::foo() invoked endl;}};int main (int argc, char* argv[]) {A a;PVTAB pVtab *(PVTAB*)a;cout A::VTAB[0] (void*)pVtab[0] endl;(pVtab[0]) ();cout A::VTAB[1] (void*)pVtab[1] endl;(pVtab[1]) ();B b;pVtab *(PVTAB*)b;cout B::VTAB[0] (void*)pVtab[0] endl;(pVtab[0]) ();cout B::VTAB[1] (void*)pVtab[1] endl;(pVtab[1]) ();return 0;}结果A::VTAB[0] 00401087A::foo() invokedA::VTAB[1] 00401267A::bar() invokedB::VTAB[0] 00401082B::foo() invokedB::VTAB[1] 00401267A::bar() invoked 转载于:https://blog.51cto.com/bagger/1335531