我正在制作一个汽车租赁系统,我想从父类继承名称。现在我想创建一个汽车数组,其中包含 4 辆不同的汽车。我不想给这个数组一个简单的数据类型,因为这辆车也有它的型号!所以我只想使用抽象数据类型。但是当我用数组写类名(使其成为类的数据类型)时,它说
[Error] field 'Cars' has incomplete type 'Car [4]'.
Run Code Online (Sandbox Code Playgroud)
为什么以及如何解决?
除了抽象数据类型之外我不知道还能做什么。代码在这里:
class Vehicle{
public:
string name;
int model;
};
class Car:public Vehicle{
public:
int seats;
Car Cars[4];
Car(){
Cars[0].name = "Alto";
Cars[1].name = "Mercedes";
Cars[2].name = "Corolla";
Cars[3].name = "Audi";
}
Run Code Online (Sandbox Code Playgroud)
所以我认为你正在寻找的代码是这样的
class Vehicle {
public:
string name;
int model;
};
class Car : public Vehicle {
public:
int seats;
};
int main()
{
Car Cars[4];
Cars[0].name = "Alto";
Cars[1].name = "Mercedes";
Cars[2].name = "Corolla";
Cars[3].name = "Audi";
}
Run Code Online (Sandbox Code Playgroud)
创建一个数组是完全可以的,Car但在类内部创建它是不合法的(并且没有理由)Car。main相反,在(或某处)创建数组。