面试题答案
一键面试- 当类B以public方式继承类A时:
- 类B的成员函数可以访问类A中protected的成员变量。
- 原因:在C++中,protected成员变量对于派生类(这里是类B)来说是可访问的。当以public方式继承时,基类(类A)的protected成员在派生类(类B)中仍然保持protected属性,所以类B的成员函数可以访问类A的protected成员变量。
- 当类B以private方式继承类A时:
- 类B的成员函数可以访问类A中protected的成员变量。
- 原因:虽然是以private方式继承,基类(类A)的protected成员在派生类(类B)中变为private属性,但类B的成员函数仍然可以访问自身类中的private和protected成员,所以类B的成员函数能访问类A的protected成员变量。不过从类B外部就无法访问该成员变量了,因为它在类B中是private属性。