c++ virtual虚方法

#include <iostream>
#include <vector>


using namespace std;


class Animal {
	public:
		virtual void run() { cout << "animal  run"; }

};

class horse  :public Animal
{
public:
	void run() { cout << "horse   pao" << endl; }
};

class pig :public Animal
{
public:
	void run() { cout << "pig   run" << endl; }
};

int  main(void) {
	 
	vector<Animal*> vecint;
	Animal* ls1 = new horse();
	vecint.push_back(ls1);
	Animal* ls2 = new pig();
	vecint.push_back(ls2);
	vector<Animal*>::iterator it;
	for (it = vecint.begin(); it != vecint.end(); it++)
		(*it)->run();

	getchar();

	return 0;
}


如果把类Animal类中virtual去掉,再次执行代码,结果如下:

猜你喜欢

转载自blog.csdn.net/qq_15267341/article/details/132056884