C++ private和protected派生(私有和保护派生)
2023-06-13 09:11:55 时间
除了公有派生(继承),C++ 还支持私有派生(继承)和保护派生(继承)。具体写法是在派生类定义的 继承方式说明符 位置写 private 或 protected。例如:
class B:private A{ }; //私有派生 class C:protected A{ }; //保护派生
不同派生方式会导致基类的成员在派生类中的可访问范围属性不同,如表 1 所示。
举一个例子说明该表的解读方法:第四行第三列说明,基类的公有成员经过私有派生后,在派生类中变为私有成员。其他情况以此类推。
类的 不可访问 成员指的是类的成员函数内部也不能访问的成员。例如,基类的私有成员在派生类的成阜函数内就不能访问,但它依然是派生类的成员,因此说基类的私有成员在派生类中成为不可访问成员。
假设基类 A 私有派生出类 B,类 B 又派生出类 C。依据上表,经过私有派生后,类 A 的公有成员 x 在类 B 中成为私有成员,于是在类 C 的成员函数中就不能访问 x 了,因为在派生类的成员函数中不能访问基类的私有成员。
一般情况下都应使用公有派生。
21558.html
c相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- EasyC++70,构造函数的一些坑
- EasyC++88,类模板(一)
- 初识 CGO - 利用 CGO 使用 C++ STL
- C++构造函数的作用_c++什么是构造函数
- 读取QQ ClientKey C++版本[通俗易懂]
- C++结构体和类的区别_c++有结构体吗
- C/C++ Qt 基本文件读写方法
- C++——构造函数的使用注意事项及static用法
- C/C++ 操作数组与指针笔记
- [C++]C++基础知识概述
- C++文本文件的读取和写入
- C++ hash(STL hash)及其函数模板用法详解
- C++中overload,override,overwrite的区别详细解析