21xrx.com
2025-03-31 23:12:34 Monday
文章检索 我的文章 写文章
C++派生: 子类继承父类的实现方式及相关概念
2023-07-04 22:05:45 深夜i     12     0
C++ 派生 子类继承 父类实现 相关概念

在C++中,派生是一种基于现有类创建新类的机制。派生类有权访问其基类中的公共和保护成员,并且可以根据需要添加新成员。这种继承类的方式在C++中被称为“子类继承父类”。

派生类的定义方式与基类相似,使用关键字“class”或“struct”定义。但是,定义时需要在类名后面加上一个冒号,并指定要继承的基类。语法如下:

class DerivedClass : AccessSpecifier BaseClass
  // Derived Class body
;

其中,AccessSpecifier是继承的访问权限。C++支持三种访问权限:

1. public: 表示继承后,基类的公共成员在派生类中仍然是公共的。

2. protected: 表示继承后,基类的公共和保护成员在派生类中都变成保护的。

3. private: 表示继承后,基类的全部成员在派生类中都变成私有的。

派生类可以从多个基类继承,这被称为多重继承。语法如下:

class DerivedClass : AccessSpecifier BaseClass1, AccessSpecifier BaseClass2, ...
  // Derived Class body
;

派生类中的成员可以是数据成员、成员函数或其他类型的成员。如果派生类定义了与基类相同的成员,则称为隐藏基类成员。可以使用作用域解析运算符(::)来访问基类中被隐藏的成员。例如:

class BaseClass
{
public:
  void foo() { cout << "BaseClass::foo()"; }
};
class DerivedClass : public BaseClass
{
public:
  void foo() { cout << "DerivedClass::foo()"; }
};
DerivedClass d;
d.foo();  // 输出DerivedClass::foo()
d.BaseClass::foo(); // 输出BaseClass::foo()

这里,DerivedClass中的foo()函数隐藏了BaseClass中的foo()函数。但通过作用域解析运算符可以访问到被隐藏的foo()函数。

继承是C++中一种非常重要和基础的概念。理解如何使用继承并派生出新的类,是成为一名优秀程序员的必备技能之一。

  
  

评论区