21xrx.com
2024-12-22 21:06:53 Sunday
登录
文章检索 我的文章 写文章
如何在C++子类中访问父类成员变量?
2023-07-03 02:44:27 深夜i     --     --
C++ 子类 父类 成员变量 访问

在C++中,类可以通过继承来创建子类。子类可以继承父类的公有函数和变量,但是如果想要在子类中访问父类的私有成员变量,就需要用到一些特殊的方法。

一种通用的方法是使用“getter”和“setter”函数来实现访问父类成员变量的功能。您可以在父类中添加公有的getter和setter函数来在子类中访问和修改父类变量。例如:


class ParentClass {

  private:

    int parent_variable;

  public:

    int get_parent_variable() const

      return parent_variable;

    

    void set_parent_variable(int value)

      parent_variable = value;

    

};

class ChildClass : public ParentClass {

  public:

    void child_function() {

      int temp = get_parent_variable(); // 访问父类变量

      set_parent_variable(temp + 1);   // 修改父类变量

    }

};

在子类中使用get_parent_variable()函数来获取父类的值,使用set_parent_variable()函数更新父类的值。可以看出,使用这种方法可以访问到父类的私有成员变量。

另一种方法是使用protected成员变量。在父类中将变量声明为protected,子类就可以直接访问该变量。但是,如果您的类继承自另一个类,那么父类的私有变量仍然无法直接访问。只有protected变量才被继承到子类中。


class ParentClass

  protected:

    int parent_variable;

;

class ChildClass : public ParentClass {

  public:

    void child_function()

      parent_variable = 100; // 直接访问父类变量

    

};

在上面的例子中,子类可以直接访问父类的protected变量。但是,如果parent_variable是private变量,那么子类无法直接访问它。

总的来说,您可以使用上述两种方法来访问父类的成员变量,方法一通过定义getter和setter函数实现,在子类中间接访问父类变量。第二个方法通过声明protected成员变量允许子类直接访问父类成员变量。这些方法都有各自的优点和缺点,您可以根据实际需求选择合适的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复