C++中的Virtual Function (虚函数)

发表于:2014-3-20 10:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:易水寒    来源:51Testing软件测试网采编

  1.C++ Virtual 用法
  这里只讲语法,因为讲原理比较难。还没有涉及到构造函数。那么就直接上代码了:
// VitualFunction.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
//base class
class Animal{
public:
virtual void eat(){
cout << "animal eat" << endl;
}
virtual void die(){
cout << "animal die" << endl;
}
};
class Dog : public Animal{
public:
void eat(){
cout << "dog eat" << endl;
Animal::die();//use base class's function
}
};
class Cat : public Animal{
public:
void eat(){
cout << "cat eat" << endl;
}
};
class Lion : public Animal{
};
int _tmain(int argc, _TCHAR* argv[])
{
vector<Animal*> someAnimals;
someAnimals.push_back(new Animal());
someAnimals.push_back(new Dog());
someAnimals.push_back(new Cat());
someAnimals.push_back(new Lion());
for(int i = 0; i < someAnimals.size(); ++i){
someAnimals[i]->eat();
}
system("pause");
return 0;
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号