我在项目开发中,需要在静态方法中访问非静态成员,在网上查了一些资料都说不能直接访问,于是我想了一个变通的方法,实现了访问 ,方法如下,请高手们指点。示例如下:
class CTest
{
    void Func1();                   // 普通成员
    static void Func2();           // 静态成员
}
 
现在需要在Func2中调用Func1,正常情况下是不能直接访问普通成员的。我们可以让静态成员函数具备访问thsi指针的能力,这个问题就可以解决了。
因此我的方法是,声明一个CTest类型的全局指针变量,如:
 
CTest* pThis;
 
然后在类的构造函数中给这个变量赋值:
pThis = this;
 
这样我们就可以在静态成员Func2中通过pThis调用Func1了:
pThis->Func1();