文件名称:cpp-member-accessor:提供对C ++私有成员的合法访问权限的库
文件大小:13KB
文件格式:ZIP
更新时间:2024-06-17 17:01:02
C++
存取器 仅标头,完全基于模板的库,可访问私有数据成员。 该库用于实现其目的的技术是完全合法的,并且受该标准允许。 该库基于类模板实例的显式实例。 显式实例化定义将忽略成员访问说明符:参数类型和返回类型可能是私有的。 来源: : 描述此技术的实现的文章可以在找到 ( 首次提到了这种技术 Herb Sutter 为何通常不应该访问私人成员。 明智一点,如果没有必要,不要试图破坏事物! 动机 尽管从标准的角度来看这是完全合法的,但该库并不意味着要违反任何C ++设计规则。 该库的目的是在测试中必要时使用它。 应该以以后可以测试的方式编写代码,但是众所周知,在大多数情况下,尤其是对遗留代码的应用,在某些情况下,需要访问私有成员,并且无法再进行任何模拟。 在这种情况下,所提供的技术要比普通的#define private public好得多,它使用friend关键字甚至为gcc标记了n