我發現了一些與QtCreator玩的以及我在使用gcc的析構函數中遇到的錯誤:默認情況下,指針不等於NULL;這需要手動添加(在我的情況下構造函數)。這是正確的嗎?怎麼來的?他們的默認值是什麼?在Qt中默認沒有與NULL關聯的指針
0
A
回答
5
指針與其他任何基本類型一樣,開始處於未初始化狀態,這意味着它們可能具有任何值(實際上,它是未定義的行爲,可以從任何未初始化的變量中讀取)。
另一方面,結構和類的構造函數保證在創建類實例時運行,這意味着,如果它被正確寫入,類將開始處於有效狀態。
+3
事實是,它取決於編譯器的實現。但是由於標準沒有提及初始化......(除了靜態變量,我相信)。 [This](http://stackoverflow.com/a/2218275/2651145)有更多的初始化信息。 –
1
除非到位構造函數,沒有默認值
看着int * x;
x
有一個未定義的值
的std :: string是指一類具有構造器因此與std::string x
有一個定義值爲x
:「空字符串構造函數(默認構造函數)構造一個空字符串,長度爲零個字符。」
相關問題
- 1. C++與NULL有關的指針
- 2. 「的getaddrinfo」時將整數指針沒有施放[默認啓用]
- 3. C++/QT - 可選參數默認爲NULL
- 4. 指針在QT
- 5. 默認belongs_to的關聯值
- 6. 如何關閉在jqgrid中設置默認排序指針?
- 7. 指針的有序關聯容器
- 8. Visual C++ 6.0中指針的默認值
- 9. 使用聯接(Rails)指定has_many關聯的默認排序?
- 10. 在C++中的NULL指針
- 11. 賦值時將整數指針沒有默認
- 12. 默認情況下函數指針是否爲NULL?
- 13. 在PhpDocumentor中,有沒有辦法指定默認的版本號?
- 14. 在Oracle中添加NOT NULL LOB列沒有默認值
- 15. 發現沒有DHCP的默認網關
- 16. 與IntelliJ中的'默認任務'關聯的分支
- 17. 指針類型的C#默認值
- 18. 聲明默認指針值的函數
- 19. 帶指針的C++默認參數
- 20. channels.asgi.InvalidChannelLayerError:沒有BACKEND指定爲默認
- 21. HTML指針指針默認爲Chrome的所有標籤的列表
- 22. X與Y沒有關聯
- 23. 有沒有辦法在Spring XML中指定默認屬性值?
- 24. 派生類型中的關聯指針? gFortran與英特爾
- 25. Qt的槽與默認參數
- 26. RapidXML NULL指針
- 27. 指針和「NULL」
- 28. Libgdx null指針
- 29. 沒有與上下文相關的主要類別:默認
- 30. 模板與方法指針參數的默認值
這就是C++中* all *指針的情況。如果你想讓它們爲NULL,分配它們。 –
如果初始化變量失敗,大多數編譯器會發出警告。將警告視爲錯誤,並且您已將自己'遮蓋'。 – ChristopheD
@MarkRansom:那麼我可以向你保證,在沒有_initialization_的情況下定義的指針會通過gcc的測試my_pointer == NULL。我認爲這是C++標準。感謝您澄清;) – Liam