Мне сложно понять, почему переменная 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++; };
}
};
http://stackoverflow.com/questions/860339/difference-between-private-public-and-protected-inheritance-in-c – yuan
@yuan right! Теперь это имеет смысл. Спасибо! – Switchkick