#include <iostream>
class Vehicle {
public:
void greet() {
std::cout << "Hello, I'm a vehicle";
}
};
class Car : public Vehicle {
public:
void greet() {
std::cout << "Hello, I'm a car";
}
};
class Bike : public Vehicle {
public:
void greet() {
std::cout << "Hello, I'm a bike";
}
};
void receiveVehicle(Vehicle vehicle) {
vehicle.greet();
}
int main() {
receiveVehicle(Car());
return 0;
}
如您所见,我正在尝试将类型参数发送Vehicle
到调用greet()
.
Car
并且Bike
是 的子类Vehicle
。他们覆盖greet()
.
但是,我得到“你好,我是一辆车”。
我想这是因为receiveVehicle
接收一个类型的参数Vehicle
而不是一个特定的子类,比如Car
or Bike
。但这就是我想要的:我希望这个函数可以与Vehicle
.
为什么我没有得到预期的输出?