有一个类
class a
{
private:
int k;
};
要求不用友元,不在这个类里添加任何代码,去访问 成员变量k。
可以通过类成员的内部地址实现..由于对于私有的访问语言层并没有限制,是因为编译器的缘故所以类外不能访问私有成员....那么可以通过如下方法来实现:
#include <iostream.h>
class A
{
private:
int k;
int l;
int m;
int n;
public:
printk() {printf("%c/n", k);}
printl() {printf("%c/n", l);}
printm() {printf("%c/n", m);}
printn() {printf("%c/n", n);}
};
int main(int argc, char* argv[])
{
A cd;
int *p = (int*)&cd;
*p = 'k';
cd.printk();
p = (int*)&cd + 1;
*p = 'l';
cd.printl();
p = (int*)&cd + 2;
*p = 'm';
cd.printm();
p = (int*)&cd + 3;
*p = 'n';
cd.printn();
return 0;
}