变量访问

Variable inaccessible?

本文关键字:访问 变量      更新时间:2023-10-16

在下面的代码中变量'id'是不可访问的类马,这是一个继承问题吗?访问修饰符问题?如有任何帮助,不胜感激。

class Animal
{
private:
   int id;
};
class Horse : public Animal
{
public:
   Horse(){
      if((id % 2) == 1) { id++ };
   } 
};

Horse在这种情况下只继承公共和受保护的元素,如果您使用:

class Horse : public Animal

要继承id,可以在Animal类中定义这个私有元素为protected:

class Animal
{
protected:
  int id;
};

您可能希望idprotected而不是private,那么。或者更好的是,使用您编写的访问器…

idAnimal是私有的,因此Horse无法访问。一个令人满意的设计是通过getID()访问id,尽管您需要一个setter和现有的getter方法。

将变量声明为private会导致只有声明该变量的类才能访问它,如果您希望继承基本类的类也能够访问该变量,请使用protected。