虚函数
为什么需要虚函数
为了实现多态,即希望派生类重新定义基类的某个函数。
#include <iostream> using namespace std; class A { public: int x; A() { x = 1000; } virtual void print() { cout << "A:x=" << x << endl; } }; class B:public A { public: int y; B() { y = 2000; } void print() { cout << "B:y=" << y << endl; } }; int main(void) { A a, *pa; B b; a.print(); b.print(); pa = &a; pa -> print(); pa = &b; pa -> print(); //虽然pa是基类类型的指针,但是它指向派生类的对象,因此调用的是派生类的函数。 return 0; }
输出:
A:x=1000
B:y=2000
A:x=1000
B:y=2000