The*_*eer 0 c++ debugging gdb debug-symbols
我有以下情况.这是该课程的精简版.我在Qt创建者中运行它并在真实场景中使用Qt.
class MyClass
{
public:
MyClass();
static MyClass *instance;
static void myMethod(int a, int b);
int name;
};
MyClass *MyClass::instance = 0;
MyClass::MyClass(){
if (instance)
exit(-1);
instance = this;
}
void MyClass::myMethod(int a, int b){
if(instance->name == a) qDebug() << "hello";
}
int main(int argc, char *argv[])
{
MyClass cls;
cls.myMethod(1,2);
}
Run Code Online (Sandbox Code Playgroud)
我试图通过调试myMethod器进入调试.当我输入方法时,只有a 1 和b 2在手表中可见,并且没有参考this或instance.
更新
答案说明静态方法没有绑定到对象,这就是没有this可用的原因.
在这个实现中,instance一旦我进入,静态方法访问调试器中我想要提供的内容myMethod.
我如何使其可用/可见?
实际上在没有对象的情况下调用静态方法 电话
MyClass cls;
cls.myMethod(1,2)
Run Code Online (Sandbox Code Playgroud)
相当于
MyClass::myMethod(1, 1)
Run Code Online (Sandbox Code Playgroud)
结果myMethod是没有收到任何this价值.
| 归档时间: |
|
| 查看次数: |
309 次 |
| 最近记录: |