【发布时间】:2012-04-11 19:42:50
【问题描述】:
我有一个用 C++ 编写的静态库。我还得到了静态库中定义的类的头文件。
我可以访问在类声明中引入友元函数的静态库中定义的类的私有成员吗?
【问题讨论】:
-
魔鬼使用:
#define private public -
不错 :).......但这不会每次都有效
-
@smerlin:我会避免这种情况。从法律角度来看,这本身就是未定义的行为,因为
private是一个保留标识符(编译器可能会产生错误并拒绝编译或默默地忽略您的指令)。其次,类的布局取决于成员的访问级别。虽然这是一个很少使用的功能,但您可能会通过让程序的不同部分为同一对象期望不同的内存布局来引入细微的错误。
标签: c++ g++ static-libraries elf friend-function