尽管有类继承,变量仍不可访问
Variable inaccessible despite class inheritance?
我很难理解为什么变量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++; };
}
};
派生类无法访问private
变量。如果要访问它,则需要将其声明为 protected
。
此外,如果计划将 Truck
类用作多态基类,则应声明virutal
析构函数。
相关文章:
- 尝试通过多个向量访问变量时,向量下标超出范围
- 通过按地址访问变量
- 通过 get-Method 访问变量在类外不起作用
- 是否可以使用指针访问变量以避免直接编辑变量?
- 我无法访问变量的值,即使我通过范围传递了它
- 简单的问题 - 如何从单独的"结构"内的'class'访问变量?
- (C++) 从另一个类访问变量时值无效
- 返回实例变量的c++方法可以访问变量中的数据,但不能更改它,但在编译时不会生成错误
- 是否可以从字符串访问变量?
- 变量 z 无法从其他函数访问变量 x
- 如何在 C++ 中从 void 返回函数访问变量
- 在链接的程序集文件中,我想从 c++ 调用代码访问变量.是否可以在不触发访问冲突的情况下执行此操作?
- 在C 中本地声明隐藏的封闭范围(而非全局)中访问变量
- 从函数中删除动态内存分配,但无法访问变量
- 如何从派生类中的基类访问变量的值?
- 如何通过指针更快地访问变量,然后直接访问变量?
- 如何在公共类 c++ 中访问变量的值
- 从 Visual Studio 中的多个源文件访问变量
- 使用命名空间和模板类访问变量
- 从子对话框访问变量