C++ 虚函数

貌似Java里没有这个概念,默认情况下都是虚函数。


#include 
using namespace std;

class A
{
public:
	int x;
	//虚函数,不加virtual,funA里的a.getX(),即便传入的是B对象,调用的也是A类里的getX(),
	//加了以后,能得到真实的类型,调用的就是B类里的getX()
	virtual int getX()
	{
		return x;
	}
};
class B :virtual public A
{
public:
	int getX()
	{
		return x+1;
	}
};
//把类B的对象作类A的对象处理 
int funA(A &a)
{
	return a.getX();
}

int funB(B &b)
{
	return b.getX();
}
int main()
{
	B b;
	b.x=10;
	//若A类中的getX不是虚函数,下面返回的是10,加了以后,返回的是11
	cout<

© 2013, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记