C&C++
发布时间:2022-04-03 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C:有没有办法限制某些类访问某些类而不暴露其他私有成员?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个带有受保护
方法Zig :: punt()的类,我只希望它可以被“Avocado”类访问.在C中,您通常
使用“朋友鳄梨”说明符来执行此操作,但
这将导致“Avocado”类可以访问所有其他变量;我不希望这样,因为这打破了封装.
是我想要的不可能,还是已经存在一个不起眼的技巧,我可以用来实现我想要的东西?或者可能会实现相同的替代类设计模式?
提前感谢任何想法!
这是
一个丑陋却又有效的伎俩:
class AvocadoFriender {
protected:
virtual void punt() = 0;
friend class Avocado;
}
class Zig : public AvocadoFriender {
...
protected:
void punt();
}
基本上,您添加了一个mixin类,它只公开您想要Avocado的接口部分.我们利用这样一个事实:通过继承一个与Avocado成为朋友的类,除了最初暴露的内容之外,你不会暴露任何其他东西.
大佬总结
以上是大佬教程为你收集整理的C:有没有办法限制某些类访问某些类而不暴露其他私有成员?全部内容,希望文章能够帮你解决C:有没有办法限制某些类访问某些类而不暴露其他私有成员?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。