class car
{
string carID
string carName
};
class electric : public car
{
string battery
string model
};
基类是car
。 electric
是一个继承自car
的派生类。
构造函数中需要包含哪些内容来初始化它们,然后在用户使用所有属性的数据输入新车时设置值?
答案 0 :(得分:1)
您需要定义构造函数并随后正确使用它们。在派生类的初始化期间,您应该始终调用基类的相应构造函数:
Derived::Derived(...):Base(...),<optional initizaliation of Derived members>{...}
例如:
class car
{
string carID;
string carName;
public:
car(string carid, string carname):carID(carid),carName(carname){}
};
class electric : public car
{
string battery;
string model;
public:
electric(string carid, string carname, string battery, string model)
:car(carid,carname),battery(battery),model(model){}
};
答案 1 :(得分:0)
在您当前的模型中,您实际上无法访问汽车的任何字段,因为默认情况下在使用class
关键字时在C ++中,所有字段都是private
。它们必须是protected
或public
才能让子类访问它们。
答案 2 :(得分:0)
您应该通过在派生类的构造函数初始化列表中调用基类构造函数来初始化基类成员。
class car
{
string carID
string carName
public:
car (string id, string name): carID(id), carName(name) {}
};
class electric : public car
{
string battery
string model
public:
electric (string id, string name, string b, string m): car(id, name),
battery(b), model(m){}
};