CPP公有继承、保护继承以及私有继承

在c++的继承控制中,有三种不同的控制权限,分别是public、protected和private。定义派生类时,若不显示加上这三个关键字,就会使用默认的方式,用struct定义的类是默认public继承,class定义的类是默认private继承。

1、公有继承

使用public继承时,派生类内部可以访问基类中public和protected成员,但是类外只能通过派生类的对象访问基类的public成员。

​ (1)基类的public成员在派生类中依然是public的。

​ (2)基类中的protected成员在派生类中依然是protected的。

​ (3)基类中的private成员在派生类中不可访问。

2、保护继承

使用protected继承时,派生类内部可以访问基类中public和protected成员,类外不能通过派生类的对象访问基类的成员(可以在派生类中添加公有成员函数接口间接访问基类中的public和protected成员)。

​ (1)基类的public成员在派生类中变为protected成员。

​ (2)基类的protected成员在派生类中依然是protected成员。

​ (3)基类中的private成员在派生类中不可访问。

3、私有继承

使用private继承时,派生类内部可以访问基类中public和protected成员,并且类外也不能通过派生类的对象访问基类的成员(可以在派生类中添加公有成员函数接口间接访问基类中的public和protected成员)。

​ (1)基类的public成员在派生类中变成private成员。

​ (2)基类的protected成员在派生类中变成private成员。

​ (3)基类的private成员在派生类中不可访问。

你可能感兴趣的:(CPP公有继承、保护继承以及私有继承)