亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

NULL vs nullptr(為什么要替換它?)

NULL vs nullptr(為什么要替換它?)

C++
互換的青春 2019-11-06 10:27:00
我知道在C ++中0x或在基于指針的應用程序中NULL已被替換nullptr。我只是好奇他們為什么要進行這種替換?在什么情況下使用指針時nullptr過度使用是NULL有益的?
查看完整描述

3 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

nullptr始終是指針類型。 0(又名C的NULL橋接到C ++中)可能導致重載的函數解析不明確,其中包括:


f(int);

f(foo *);


查看完整回答
反對 回復 2019-11-06
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

您可以找到一個很好的解釋,為什么它被替換為:讀取空指針的名稱:nullptr,引用該論文:


此問題分為以下幾類:


通過為用戶提供一種減少模棱兩可的代碼的方式來改善對庫構建的支持,從而使庫編寫者不必再擔心整數和指針類型的重載。


通過使更容易明確地表示整數0和nullptr來改進對通用編程的支持。


使C ++易于教授和學習。


查看完整回答
反對 回復 2019-11-06
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

這是Bjarne Stroustrup的措辭,


在C ++中,NULL的定義為0,因此僅存在美學差異。我更喜歡避免使用宏,所以我使用0。NULL的另一個問題是,人們有時會錯誤地認為它不同于0和/或不是整數。在標準前代碼中,有時將NULL定義為不合適的值,因此必須避免。這些天來這種情況不太常見。


如果必須命名空指針,則將其命名為nullptr;這就是C ++ 11中的名稱。然后,“ nullptr”將成為關鍵字。


查看完整回答
反對 回復 2019-11-06
  • 3 回答
  • 0 關注
  • 648 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號