C++方法重载问题
我有 1 个父类调用 Vehicle
我有 2 个孩子班级叫摩托车和汽车
我有这个值调用 getNoOfWheels();
父类得到了那个方法,摩托车和汽车也得到了。
假设我提示用户输入
string vehicleType;
cout << "What is your vehicle type" << endl;
cin >> vehicleType;
根据用户输入,我如何使程序根据 vehicleType 选择正确的功能,我知道如果 VehicleType== 可以使用,但这违背了重载的目的。
之前有人建议使用虚拟方法。在这种情况下
virtual int noOfVerticles() const { return 0; }
对于形状.h
我对汽车和摩托车有相同的功能,但是我如何让 noOfVerticles 从基于 vehicleType 的子类中选择正确的功能
我试过这样的东西..
Vehicle cVehicle;
Car &rCar = &cVehicle;
if(inVehicle=="Car")
{
cout << rCar.noOfWheels() << endl;
}
我得到一个错误说..
invalid initizliation of non-const refenrece of type "Car&" from an rvaleu of type Vehicle*
和 ...
这是我在 Car.cpp 的虚拟功能
public:
virtual int noOfWheels() const { return 4; }
谢谢。!