在QT中,我遵循在頭文件中編寫接口的方式,然後在.cpp文件中執行。在我來說,我有一個MainApplication和兩個對話框作爲MainApplicationQT中的非初始化指針
所以在MainApplication頭的孩子,兩個未初始化指針兩個對話框
MemberForm *memberForm;
AboutForm *aboutUsForm;
據我知道指針會是null,並且此下列條件計算爲真
memberForm == NULL //False
aboutUsForm == NULL //False
據我知道,所有非初始化的指針是NULL指針,所以這是奇怪我。是什麼使得它更奇怪的是去除標頭中的指針之一,條件判斷爲真
MemberForm *memberForm;
//AboutForm *aboutUsForm; // Removing the pointer
條件計算真正
memberForm == NULL //True
我明白任何迴應。 PS:如果你想downvote帖子請留下評論解釋爲什麼..
你的第二個測試只是「運氣」,這些成員不會被初始化,你需要自己做。 – Mat
在C++中,沒有明確的賦值,指針不會被初始化爲NULL/nullptr。缺省值是未定義的,並且在大多數情況下將指向未初始化的內存。在某些設置中,如使用MSVC進行調試構建,編譯器*可能會碰巧決定使用null初始化值,但這是您完全可以依賴的任何設置 - 它將在發佈版本中斷開。 –
@Mat是的,我是一個幸運的男孩:D 它看起來,我必須學習更多.. –