有一个汽车类Vehicle,将它作为基类派生出小汽车类Car,卡车类Truck和公交车类Bus,定义这些类并声明一个虚函数用来显示各类信息。
时间: 2023-08-18 22:09:25 浏览: 33
好的,以下是代码实现:
```cpp
#include <iostream>
using namespace std;
class Vehicle {
public:
virtual void showInfo() {
cout << "Vehicle: This is a general vehicle." << endl;
}
};
class Car : public Vehicle {
public:
void showInfo() {
cout << "Car: This is a car." << endl;
}
};
class Truck : public Vehicle {
public:
void showInfo() {
cout << "Truck: This is a truck." << endl;
}
};
class Bus : public Vehicle {
public:
void showInfo() {
cout << "Bus: This is a bus." << endl;
}
};
int main() {
Vehicle* v1 = new Car();
Vehicle* v2 = new Truck();
Vehicle* v3 = new Bus();
v1->showInfo();
v2->showInfo();
v3->showInfo();
delete v1;
delete v2;
delete v3;
return 0;
}
```
输出结果为:
```
Car: This is a car.
Truck: This is a truck.
Bus: This is a bus.
```
上面的代码中,Vehicle 是基类,Car、Truck 和 Bus 都是派生类。这些类中都定义了 showInfo() 函数,用来显示各自的信息。在 main() 函数中,我们创建了三个指向 Vehicle 类型的指针,并分别指向 Car、Truck 和 Bus 对象。然后调用它们的 showInfo() 函数,输出各自的信息。最后,我们释放了动态分配的内存。