我很难理解为什么变量engineNum
在类Pickup
的函数中无法访问。我的基本理解是,如果继承了类,则应该可以访问私有变量。这不是我发现的情况:
class Truck
{
private:
string model;
Truck() {};
static int TruckEngineNum;
int engineNum;
public:
Truck(const string& model)
{
this->model = model;
engineNum = TruckEngineNum++;
};
string getModel()
{
return model;
}
int getEngineNum()
{
return engineNum;
}
};
int Truck::TruckEngineNum = 100;
class Pickup : public Truck
{
public:
Pickup(const string& model) : Truck(model)
{
if((engineNum % 2) == 1){ engineNum++; };
}
};
答案 0 :(得分:4)
private
个变量。如果您想要访问它,则需要将其声明为protected
。
此外,如果您计划将其用作多态基类,则您的Truck
类应声明virutal
析构函数。