C++:89---类继承(使用using声明增加类的可访问性)

一、using介绍

  • 我们介绍过,一个类的成员/方法是否可以供外界访问与其的访问权限限制(public、protected、private)有关
  • 在继承关系中,我们可以通过using关键字将一个类的成员/方法改变其在类中的访问性
  • using声明可以放在public、protected、private任一个访问说明符下
  • 这种using声明只能出现在类的继承中,单独一个类不可以使用

二、演示案例

  • 下面的B私有B私有继承于A,所以getNum在B中是private的,我们不能在外界调用
class A {
public:
    std::size_t getNum() { return n; };
protected:
    std::size_t n;
};

class B :private A{};

int main()
{
    B b;
    b.getNum();  //错误,因为B私有继承于A,所以getNum在B中是private的
    return 0;
}
  • 我们在B中使用using将A的getNum声明在public下,此时B的对象就可以在外界调用getNum了
class A {
public:
    std::size_t getNum() { return n; };
protected:
    std::size_t n;
};

class B :private A{
public:
    using A::getNum;
protected:
    using A::n;
};

int main()
{
    B b;
    b.getNum(); //正确:在B中已经声明A的getNum为public了
    return 0;
}

三、错误演示案例

  • 这种using声明只能出现在类的继承中,单独一个类不可以使用
class A {
public:
    std::size_t getNum() { return n; };
protected:
    std::size_t n;
};

class B{  //无继承关系
public:
    using A::getNum; //错误
protected:
    using A::n;  //错误
};

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董哥的黑板报

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值