/////////////////////////////////////////////////////////////////////////////////////
多种处理字符串涵数:
=========================================
异质
class Vehicle
{
public:
virtual void run() const = 0;
};
// 派生于Vehicle的具体类Car
class Car: public Vehicle
{
public:
virtual void run() const
{
std::cout << "run a car\n";
}
};
// 派生于Vehicle的具体类Airplane
class Airplane: public Vehicle
{
public:
virtual void run() const
{
std::cout << "run a airplane\n";
}
};
void run_vehicles(const std::vector& vehicles)
{
for (unsigned int i = 0; i < vehicles.size(); ++i)
{
vehicles[i]->run(); // 根据具体vehicle的类型调用对应的run()
}
}
int main()
{
Car car;
Airplane airplane;
std::vector v; // 异质vehicles集合
v.push_back(&car);
v.push_back(&airplane);
run_vehicles(v); // run不同类型的vehicles
}
阅读(1075) | 评论(0) | 转发(0) |