C++中 继承 多态性改造实验
发布网友
发布时间:2022-11-10 21:14
我来回答
共2个回答
热心网友
时间:2024-10-21 10:10
vehicle.h
#ifndef __VEHICLE_H__
#define __VEHICLE_H__
#include <iostream>
using namespace std;
class vehicle
{
public:
virtual void horn() = 0;
virtual void print()
{
cout<<"This is a vehicle."<<endl;
}
};
#endif
taxi.h
#ifndef __TAXI_H__
#define __TAXI_H__
#include <iostream>
#include "vehicle.h"
using namespace std;
class taxi : public vehicle
{
public:
void horn()
{
cout<<"Taxi's horn"<<endl;
}
void print()
{
cout<<"This is a taxi."<<endl;
}
};
#endif
truck.h
#include <iostream>
#include "vehicle.h"
using namespace std;
class truck : public vehicle
{
public:
void horn()
{
cout<<"Truck's horn"<<endl;
}
void print()
{
cout<<"This is a truck."<<endl;
}
};
main.cpp
#include <iostream>
#include <vector>
#include "taxi.h"
#include "truck.h"
using namespace std;
int main()
{
vector<vehicle*> v;
taxi ta1,ta2;
truck tr1,tr2;
vehicle* p[4];
p[0]=&ta1;
p[1]=&tr1;
p[2]=&ta2;
p[3]=&tr2;
v.push_back(p[0]);
v.push_back(p[1]);
v.push_back(p[2]);
v.push_back(p[3]);
v[0]->horn();
v[1]->horn();
v[2]->horn();
v[3]->horn();
return 0;
}
热心网友
时间:2024-10-21 10:10
对,对对。。