21xrx.com
2024-09-20 00:44:17 Friday
登录
文章检索 我的文章 写文章
C++子类修改父类属性值
2023-06-22 01:41:06 深夜i     --     --
C++ 子类 父类 修改 属性值

在面向对象编程中,继承是一种非常重要的概念,它能够大大提高代码的复用性和可维护性。在C++语言中,子类可以继承父类的属性和方法,但是有时候子类需要对父类的属性值进行修改,这时候该怎么做呢?

首先,我们需要了解一下C++中的访问控制符。C++中有三种访问控制符,分别是public、protected和private。public表示公共的,protected表示受保护的,private表示私有的。在类的内部可以直接访问所有属性和方法,但是在类的外部只能访问public的属性和方法。

当子类需要修改父类的属性值时,可以采用以下两种方法。

方法一:使用public的setter方法

在C++中,可以使用setter和getter方法来封装类的属性,setter方法用于设置属性值,getter方法用于获取属性值。子类可以继承父类的setter方法来修改父类的属性值。例如:


class Parent {

private:

  int age;

public:

  void setAge(int age)

    this->age = age;

  

};

class Child : public Parent {

public:

  void setParentAge(int age) {

    setAge(age);

  }

};

在上面的例子中,父类Parent有一个私有的属性age和一个公共的setter方法setAge,子类Child继承了Parent的setAge方法,并新增了一个公共的方法setParentAge来设置父类的age属性。

方法二:使用protected的属性

如果父类的属性是protected的,子类可以直接访问这些属性并修改它们的值。例如:


class Parent

protected:

  int age;

;

class Child : public Parent {

public:

  void setParentAge(int age)

    this->age = age;

  

};

在上面的例子中,父类Parent的age属性是protected的,子类Child可以直接访问并修改这个属性值。

总结来说,C++子类可以通过继承父类的方法来修改父类的属性值。如果父类的属性是public的,可以通过继承父类的setter方法来修改属性值;如果父类的属性是protected的,子类可以直接访问并修改这些属性值。

  
  

评论区

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