虚函数
为什么需要虚函数
为了实现多态,即希望派生类重新定义基类的某个函数。
#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

浙公网安备 33010602011771号