C++派生类对基类成员的访问权限

在C++中,派生类对基类成员的访问权限取决于基类成员的访问控制符(public、protected、private)以及继承方式(public继承、protected继承、private继承)。以下是具体规则:

 基类成员访问控制符

1. Public成员:派生类可以访问。

2. Protected成员:派生类可以访问。

3. Private成员:派生类不能直接访问。

 继承方式

1. Public继承:基类的public成员在派生类中仍然是public,基类的protected成员在派生类中仍然是protected。

2. Protected继承:基类的public成员和protected成员在派生类中都变成protected成员。

3. Private继承:基类的public成员和protected成员在派生类中都变成private成员。

 详细情况

假设有一个基类`Base`和一个派生类`Derived`:

```cpp

class Base {

public:

    int publicMember;

protected:

    int protectedMember;

private:

    int privateMember;

};

class Derived : public Base { // public继承

    // 派生类中publicMember仍然是public

    // 派生类中protectedMember仍然是protected

    // 派生类不能直接访问privateMember

};

class DerivedProtected : protected Base { // protected继承

    // 派生类中publicMember变成protected

    // 派生类中protectedMember仍然是protected

    // 派生类不能直接访问privateMember

};

class DerivedPrivate : private Base { // private继承

    // 派生类中publicMember变成private

    // 派生类中protectedMember变成private

    // 派生类不能直接访问privateMember

};

```

 总结

1. Public继承:

   - 派生类可以访问基类的public和protected成员。

   - 基类的public成员在派生类中仍然是public。

   - 基类的protected成员在派生类中仍然是protected。

2. Protected继承:

   - 派生类可以访问基类的public和protected成员。

   - 基类的public成员在派生类中变成protected。

   - 基类的protected成员在派生类中仍然是protected。

3. Private继承:

   - 派生类可以访问基类的public和protected成员。

   - 基类的public成员在派生类中变成private。

   - 基类的protected成员在派生类中变成private。

无论哪种继承方式,派生类都不能直接访问基类的private成员。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值