在C++,继承是一种可以代码复用的重要手段,它允许一个类继承另一个类的属性和方法。继承可以实现类之间的层次关系,提供代码重用和多态性有关的功能。同时,C++支持多重继承,即一个类可以继承多个基类的特性
class ChildClass : [访问限定符] BaseClass
{
// 子类的成员和函数定义
};
ChildClass是子类,也称做派生类
BaseClass是父类,也称作基类
继承关系和访问限定符


继承基类成员访问方式的变化
| 类成员/继承方式 | public继承 | protected继承 | private继承 |
|---|---|---|---|
| 基类的public成员 | 派生类的public成员 | 派生类的protected成员 | 派生类的private成员 |
| 基类的protected成员 | 派生类的protected成员 | 派生类的protected成员 | 派生类的private成员 |
| 基类的private成员 | 在派生类中不可见 | 在派生类中不可见 | 在派生类中不可见 |
C++中的继承是指一个类可以从另一个类派生出来,并继承父类的属性和方法。继承使得派生类可以重用父类的代码,并且可以在派生类中添加新的成员和方法。
友元是一种C++特性,允许一个类或函数访问另一个类的私有成员。通过友元关系,可以在一个类中将其他类或函数声明为友元,从而使其能够访问本类的私有成员。
继承和友元是两个不同的概念,在C++中可以同时使用。派生类可以继承父类的友元函数或友元类,也可以在自己的类中声明别的类或函数为友元。使用友元的目的是为了实现类之间的访问权限控制,使得某些类或函数可以操作其他类的私有成员。
在C++中,继承可以包括父类的静态成员,而这些静态成员在派生类中也是共享的。
当派生类继承父类时,它同样继承了父类的静态成员。这意味着派生类可以直接访问父类的静态成员,而无需创建父类对象。派生类可以使用父类的静态成员函数和静态成员变量,也可以通过父类名限定使用。
此外,当派生类重新定义了一个父类的静态成员时,该静态成员在派生类中将会覆盖父类中的静态成员。这意味着在派生类中使用相同名称的静态成员时,将使用派生类自己的静态成员,而不是父类的静态成员。
需要注意的是,继承父类的静态成员并不会增加派生类对象的大小,因为静态成员只有一个实例,无论继承多少次,都只会存在一个。静态成员在编译时就已经分配内存,不依赖于对象的创建。
成员并不会增加派生类对象的大小,因为静态成员只有一个实例,无论继承多少次,都只会存在一个。静态成员在编译时就已经分配内存,不依赖于对象的创建。