holyya.com
2025-09-04 12:53:32 Thursday
登录
文章检索 我的文章 写文章
C++子类如何修改父类的成员变量
2023-07-12 14:56:54 深夜i     --     --
C++ 子类 修改 父类 成员变量

在C++继承中,子类可以继承父类的成员变量和方法。但是,有时候我们需要在子类中对父类的成员变量进行修改。那么,如何在C++子类中修改父类的成员变量呢?

首先,我们需要了解C++中父类成员变量的可见性。在默认情况下,父类的成员变量是私有的,只有在父类的成员函数中才能够访问。因此,在子类中无法直接访问父类的私有成员变量。但是,我们可以通过一些方法来实现对父类成员变量的修改。

第一种方法是使用父类的公有成员函数。我们可以在父类中定义一个公有成员函数,用来设置父类的私有成员变量。然后,在子类中通过调用父类的公有成员函数来修改父类的成员变量。如下所示:


class Father{

private:

  int num;

public:

  void setNum(int n)

    num = n;

  

};

class Son: public Father{

public:

  void setNumInFather(int n){

    setNum(n);

  }

};

在上述代码中,我们在Father类中定义了setNum()函数来设置num的值。然后,在Son类中声明了一个新的函数setNumInFather(),它将调用setNum()函数来设置num的值。这样,在子类中我们就可以通过调用setNumInFather()函数来修改父类的成员变量了。

除了使用函数的方式,还有一种方法是在子类中重新定义父类的成员变量。但是,需要注意的是,这种方式只适用于父类成员变量是公有或保护的情况下。具体实现方式如下:


class Father

public:

  int num;

;

class Son: public Father{

public:

  void setNumInFather(int n)

    num = n;

  

};

在上述代码中,我们在Son类中重新定义了Father类的成员变量num,并通过调用setNumInFather()函数来修改该成员变量的值。需要注意的是,如果父类成员变量是私有的,那么这种方式是无效的。

总结来说,修改父类成员变量的方式有两种,一种是通过在父类中定义公有成员函数来设置私有成员变量的值,然后在子类中调用该函数;另一种是在子类中重新定义父类的成员变量,并通过调用子类函数来修改此成员变量的值。需要根据具体情况来选择合适的方法,并遵循面向对象的编程原则。

  
  

评论区

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