21xrx.com
2024-12-23 01:53:25 Monday
登录
文章检索 我的文章 写文章
C++程序中的公有派生详解
2023-07-01 00:02:42 深夜i     --     --
C++ 公有派生 继承 父类 子类

在C++中,派生是一种面向对象编程的重要概念。派生允许程序员基于现有类创建新类,并且允许新类继承现有类的属性和方法。公有派生是一种派生方式,它允许新类继承现有类的公有属性和方法,同时也可以重新定义或添加新的公有属性和方法。

公有派生的语法形式如下:


class NewClass : accessibility-type ExistingClass

  // member declarations

;

其中 `accessibility-type` 表示继承方式,可以是 `public`、`private` 或 `protected`,`ExistingClass` 表示现有类的名称,`member declarations` 表示新类的成员。

在公有派生中,现有类的公有成员和方法可以直接访问,而对于其他成员和方法,则需要通过访问控制方式来实现。

例如,以下代码演示了一个基于 `Person` 类创建新类 `Student` 的公有派生示例:


#include <iostream>

using namespace std;

class Person

{

public:

  string name;

  void setName(string n)

  

    name = n;

  

  void display()

  

    cout << "Name is " << name << endl;

  

};

class Student : public Person

{

public:

  int rollNumber;

  void setRollNumber(int rn)

  

    rollNumber = rn;

  

  void displayRollNumber()

  

    cout << "Roll number is " << rollNumber << endl;

  

};

int main()

{

  Student s;

  s.setName("John");

  s.setRollNumber(123);

  s.display();

  s.displayRollNumber();

  return 0;

}

在上述示例中,`Student` 类公有派生自 `Person` 类。`Person` 类具有 `name` 属性和 `display()` 方法。`Student` 类新增加了 `rollNumber` 属性和 `displayRollNumber()` 方法。在主函数中,新建一个 `Student` 对象,并调用其继承自 `Person` 类的 `setName()` 和 `display()` 方法,以及其自身的 `setRollNumber()` 和 `displayRollNumber()` 方法。

在控制台输出中,将看到以下内容:


Name is John

Roll number is 123

因此,通过公有派生,`Student` 类成功地继承了 `Person` 类的 `name` 属性和 `display()` 方法,同时增加了自己的属性和方法。

需要注意的是,公有派生可能会导致代码的耦合度增加,因为新类依赖于现有类的实现。因此,在设计类的继承关系时,应该谨慎选择继承方式,并注意维护好类的封装性和可复用性。

  
  
下一篇: C++ rewind 函数

评论区

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