1. 虚函数会导致的结果:直接上个经典例子...
class A { public: void a() { cout<<"A.a"<<endl; } virtual void b() { cout<<"A.b"<<endl; } }; class B: public A { public: void a() { cout<<"B.a"<<endl; } void b() { cout<<"B.b"<<endl; } }; int main(int argc, const char * argv[]) { A *a1 = new A(); B *b = new B(); A *a2 = new B(); a1->a(); // A.a a1->b(); // A.b b->a(); // B.a b->b(); // B.b a2->a(); //A.a 非虚函数,根据基类 a2->b(); //B.a 虚函数,根据子类 return 1; }
2. 机制解释
XXX
时间: 2024-10-18 12:47:41