C++中如何将一个类的this传递到类外面使用,用静态成员变量保存为什么会出错,求高手赐教?

class A:public X
{
public:
A();
~A();
public:
void RegistObject(X * pX_);
};
A::A()
{
RegistObject(B::m_pX);
}
void A::RegistObject(X * pX_)
{
pX_=this;
}
class B
{
public:
B();
~B();
public:
static X * m_pX;
};
这个程序中Bl类的静态成员m_pX应该保存的是A类的this指针,但是为什么使用m_pX调用A类的成员函数的时候出错了,求高手赐教?

这是形参与实参的问题。
RegistObject(B::m_pX); 传入的是形参,调用函数时会对形参进行拷贝,也就是说void A::RegistObject(X * pX_)中,pX_是B::m_pX的拷贝,所以pX_=this;并不能修改B::m_pX。这里的参数应该使用指针的引用。
void A::RegistObject(X * pX_) 改为 void A::RegistObject(X *& pX_) 即可
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网