虚函数

为什么需要虚函数

为了实现多态,即希望派生类重新定义基类的某个函数。

 

#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

posted @ 2012-12-31 22:20  helloweworld  阅读(152)  评论(0编辑  收藏  举报