21xrx.com
2025-03-30 17:24:17 Sunday
文章检索 我的文章 写文章
C++子类如何修改父类的成员变量
2023-07-12 14:56:54 深夜i     281     0
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()函数来修改该成员变量的值。需要注意的是,如果父类成员变量是私有的,那么这种方式是无效的。

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

  
  

评论区

请求出错了