在派生类中使用using声明改变基类成员的可访问性

原文:
通过在类的内部使用using声明语句 , 我们可以将该类的直接或间接基类中的任何可访问成员标记出来 (只限于非私有成员) 。using声明语句中名字的访问权限由该using声明语句之前的访问说明符来决定。
例子:

//.h
class Base
{
public:
	int base_public = 1;
	void func1();
protected:
	int base_protect = 2;
	void func2();
private:
	int base_private = 3;
	void func3();
};

class Derive1 :private Base //私有继承
{
public:
//在public作用域声明基类中的成员
	using Base::base_public; //成功,基类公有->派生类公有
	using Base::func1; //成功,基类公有->派生类公有
	using Base::func2; //成功,基类保护->派生类公有
protected:
	using Base::base_protect; //成功,基类保护->派生类保护
	using Base::func3; //错误,基类私有->派生类保护;编译器报错 , 不可访问
private:
	using Base::base_private; // 错误, 基类私有->派生类私有;编译器报错 , 不可访问
};

参考资料:
1、C++ Primer5 P546
2、C++(继承):14—使用using声明增加类的可访问性
3、通过using声明改变个别成员的可访问性

总结:

1、在派生类中利用using声明可以改变基类除私有成员外其他成员的访问权限。
2、改变后该成员在派生类的访问权限由using位于的派生类访问说明符确定。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值