MST

星途 面试题库

面试题:C++ 类访问控制之继承中的访问权限变化

在C++中,假设有一个基类Base,包含public、protected和private成员。现在有一个派生类Derived继承自Base,分别使用public、protected和private继承方式,请详细说明在不同继承方式下,Base类的public、protected和private成员在Derived类中的访问权限是如何变化的?
44.6万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

public继承

  • Base类的public成员:在Derived类中仍然是public成员,派生类对象及类外代码都可以访问。
  • Base类的protected成员:在Derived类中是protected成员,派生类成员函数和友元函数可以访问,类外代码不能访问。
  • Base类的private成员:在Derived类中不可访问,即使是派生类成员函数和友元函数也不能访问。

protected继承

  • Base类的public成员:在Derived类中变为protected成员,派生类成员函数和友元函数可以访问,类外代码不能访问。
  • Base类的protected成员:在Derived类中仍然是protected成员,派生类成员函数和友元函数可以访问,类外代码不能访问。
  • Base类的private成员:在Derived类中不可访问,即使是派生类成员函数和友元函数也不能访问。

private继承

  • Base类的public成员:在Derived类中变为private成员,只有派生类成员函数和友元函数可以访问,类外代码不能访问。
  • Base类的protected成员:在Derived类中变为private成员,只有派生类成员函数和友元函数可以访问,类外代码不能访问。
  • Base类的private成员:在Derived类中不可访问,即使是派生类成员函数和友元函数也不能访问。