c++中如何访问类的保护性质的成员变量或成员函数

在使用第三方库时,通常会采用公共继承的方式扩展类的功能,在继承基类的时候,可以方便的访问私有变量。某些情况下,无法继承,但又因为业务需要,必须要访问保护变量或保护函数。下面推荐一种安全的简洁的方式。

假设有类QPoint,其结构如下。 

class QPoint
{
protected:
    double x = 0;
    double y = 0;
}

如果我们想直接访问QPoint的x或y,该怎么办呢。可以添加一个中继类,继承QPoint,把需要访问x,y的函数或类声明为friend,就可以访问了,代码如下。

	class TestPoint;

	class MyPoint : public QPoint { friend TestPoint; };

	class TestPoint
	{
		TestPoint()
		{
			QPoint *pt = new QPoint();

			((MyPoint *)pt)->x = 0;
		}
	};

通过继承和友元配合的方式,访问保护成员变量或成员函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值