64,649
社区成员
发帖
与我相关
我的任务
分享
private:
int m_i;
public:
int getI()
{
return m_i;
}
class A
{
friend class B;
private :
int m_a;
};
class B
{
public:
void fun()
{
A a;
a.m_a = 1; // 访问A的私有成员
}
};
2、提供public 的 getter,setter
class A
{
public:
int GetMemberA() { return m_a; }
void SetMemberA(int a) { m_a = a; }
private:
int m_a;
};
class B
{
public:
void fun()
{
A a;
a.SetMemberA(1);
}
};
3、想办法拿到那个私有成员的地址,绕过访问权限控制符
class A;
typedef void (A::*Fun)();
class A
{
public:
static Fun GetFun();
private:
void process() { printf("process"); }
};
Fun A::GetFun()
{
return &A::process;
}
class B
{
public:
void process()
{
A a;
(a.*A::GetFun())();
}
};