📜  c++中继承的语法是什么(1)

📅  最后修改于: 2023-12-03 14:59:51.710000             🧑  作者: Mango

C++中继承的语法

在C++中,继承是一种重要的面向对象编程概念。它允许创建一个新类,该类可以继承现有类的属性和方法,称为基类或父类。这种新类,称为派生类或子类,可以扩展或修改继承的属性和方法,或添加新的属性和方法。这种继承关系可以形成类的层次结构。

基本语法

继承的基本语法如下所示:

class DerivedClass : [access-specifier] BaseClass
{
   // 成员变量
   // 成员函数
};

其中DerivedClass是派生类的名称,BaseClass是基类的名称。access-specifier可以是publicprotectedprivate中的一个,它定义了派生类对基类成员的访问权限。默认情况下,如果没有显式指定,它是private

不同的访问权限

派生类可以继承基类的公有、保护和私有成员。但是,它们在派生类中的访问权限有所不同。

  • 公有继承:基类的公有成员在派生类中保持公有访问权限,基类的保护成员在派生类中保持保护访问权限,基类的私有成员在派生类中不可访问。
  • 保护继承:基类的公有成员在派生类中保持保护访问权限,基类的保护成员在派生类中保持保护访问权限,基类的私有成员在派生类中不可访问。
  • 私有继承:基类的公有成员在派生类中变为私有成员,基类的保护成员在派生类中变为私有成员,基类的私有成员在派生类中不可访问。
构造函数和析构函数

当创建派生类的对象时,首先会调用基类的构造函数,然后是派生类的构造函数。同样,当派生类的对象被销毁时,先是派生类的析构函数,然后是基类的析构函数。

多重继承

C++允许一个类继承多个类,称为多重继承。在多重继承中,一个派生类可以有多个基类,它可以继承它们所有的属性和方法。多重继承的语法如下所示:

class DerivedClass : [access-specifier] BaseClass1, [access-specifier] BaseClass2, ..., [access-specifier] BaseClassN
{
   // 成员变量
   // 成员函数
};

其中,BaseClass1BaseClass2等是基类的名称,access-specifier可以是publicprotectedprivate中的一个,用于定义子类对基类成员的访问权限。

虚继承

虚继承是多重继承的一种特殊形式,它允许子类只继承一个共同的基类的实例,这个基类被称为虚基类。这样可以避免在派生类中重复继承同一基类的实例,避免产生二义性。虚继承的语法如下所示:

class DerivedClass : [access-specifier] virtual BaseClass1, [access-specifier] virtual BaseClass2, ..., [access-specifier] virtual BaseClassN
{
   // 成员变量
   // 成员函数
};

其中,BaseClass1BaseClass2等是基类的名称,access-specifier可以是publicprotectedprivate中的一个,用于定义子类对基类成员的访问权限,virtual关键字用于指示虚继承。

总结

C++中继承是一种重要的面向对象编程概念,它允许创建新的类型,该类型可以继承现有类型的属性和方法,并可以进行扩展和修改。在C++中,继承的基本语法包括类名、派生列表和访问说明符。派生类可以继承基类的公有、保护和私有成员,但它们在派生类中的访问权限有所不同。此外,C++还支持多重继承和虚继承。