我这里有点问题。
- 车辆是父类
- 汽车和摩托车是儿童班
这是我的主要 cpp 文件
int main() {
// assuming max size is up to 100
VehicleTwoD *vehicletwod[100];
int vehicleCounter = 0;
Car *car = new Car();
Motorcycle *motor = new Motorcycle();
cout << " Please enter name of vehicle ";
cin >> vehicleName;
if (vehicleName == "Car") {
vehicletwod[vehicleCounter] = car;
//issue here
vehicletwod[vehicleCounter].setName(vehicleName);
//issue end
}
return 0;
}
这是我的车.cpp
struct Point {
int x, y;
};
class Car: public Vehicle {
private:
Point wPoint[4];
double area;
double perimter;
public:
void setType(string);
void setPoint();
string getType();
string getPoint();
}
这里的问题是 setName 是 Vehicle 的函数,而不是 Car 的函数。但我做了应该继承该功能的继承。但似乎不起作用。
它说...在 vehicletwod[vehicleCounter]' 中请求 setName,它是非类类型 VehicleTwoD*
以上问题已修复
附加问题:
好的,我通过更改修复了上一个问题。到->
这里是另一个问题。
就像代码一样。在这部分
if (vehicleName == "Car") {
vehicletwod[vehicleCounter] = car;
vehicletwod[vehicleCounter]->setName(vehicleName);
//now i want to setPoint which is a function of child class
vehicletwod[vehicleCounter]->setPoint();
//issue here
}
我尝试设置子类 Car 的函数 setPoint
但是它说..车辆没有名为“setPoint”的成员
在做了约翰提到的事情之后..上述问题也得到了解决..
但最困难的部分是如何检索设置的内容,因为它是一个车辆对象而不是汽车对象。
假设在 setPoint 之后,我想 getPoint()
我试着这样做
vehicletwod[0]->getPoint();
我收到一条错误消息,说 getPoint 属于非类类型“vehicletwod”