我有以下情況。這是該課程的精簡版。我在Qt創建者中運行它,並在真實場景中使用Qt。當單步進入單身的靜態方法時,gdb沒有顯示「this」?
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);
}
我試圖步入它與調試器進行調試myMethod
。當我輸入方法時,手錶中只有a 1
和b 2
可見,並且沒有提及this
或instance
。
更新 的回答說,靜態方法不綁定到這就是爲什麼沒有this
可用的對象。
在這個實現中,靜態方法訪問instance
,這就是我一旦進入myMethod
就想在調試器中可用的東西。
我該如何讓這些可用/可見?
你的編輯沒有任何意義,因爲我確實在debuger中看到了'intance'。看到這一點,很容易看到'instance-> name' –
@BЈовић我錯過了代碼示例中的本質,我道歉。這是一個可重複的更新,其中'instance'不可訪問。 – TheMeaningfulEngineer
*靜態方法訪問實例,這就是我希望在調試器中可用的一次進入myMethod *在MyClass :: instance上設置監視器? –