2026/8/17 19:40:25

深入理解C++访问限定符<二>:public、protected、private

深入理解C++访问限定符<二>:public、protected、private 规则公式子类中的最终权限 min(基类成员限定符,基类继承限定符)按权限大小排序publicprotectedprivate如果基类继承限定符是protected#include iostream using namespace std; class Base { private: int a 1; // 私密 protected: int b 2; // 家族内部 public: int c 3; // 对外公开 }; class Derived : protected Base { public: void test() { // cout a; // ❌ 编译报错! 无法访问基类 min(private,protected)private cout b; // ✅ 可以protected 专门留给子类 min(protected,protected)protected cout c; // ✅ 可以protected 专门留给子类 min(public,protected)protected } }; int main() { Derived d; d.test(); // cout d.a; // ❌ 编译报错类外部不能访问 private // cout d.b; // ❌ 编译报错类外部不能访问 protected // cout d.c; // ❌ 编译报错类外部不能访问 protected return 0; }如果基类继承限定符是private#include iostream using namespace std; class Base { private: int a 1; // 私密 protected: int b 2; // 家族内部 public: int c 3; // 对外公开 }; class Derived : private Base { public: void test() { // cout a; // ❌ 编译报错! 无法访问基类 min(private,private)private // cout b; // ❌ 编译报错! 无法访问基类 min(protected,private)private // cout c; // ❌ 编译报错! 无法访问基类 min(public,private)private } }; int main() { Derived d; d.test(); // cout d.a; // ❌ 编译报错类外部不能访问 private // cout d.b; // ❌ 编译报错类外部不能访问 private // cout d.c; // ❌ 编译报错类外部不能访问 private return 0; }————————————————版权声明本文为CSDN博主「m0_73457176」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。原文链接https://blog.csdn.net/m0_73457176/article/details/163755837