C++ 11 新特性 nullptr 学习
生活随笔
收集整理的這篇文章主要介紹了
C++ 11 新特性 nullptr 学习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
nullptr 出現的目的是為了替代 NULL。
在某種意義上來說,傳統 C++ 會把 NULL、0 視為同一種東西,這取決于編譯器如何定義 NULL,有些編譯器會將 NULL 定義為 ((void*)0),有些則會直接將其定義為 0。
C++ 不允許直接將 void * 隱式轉換到其他類型,但如果 NULL 被定義為 ((void*)0),那么當編譯char *ch = NULL;時,NULL 只好被定義為 0。
這將導致C++ 中重載特性會發生混亂;
為了解決這個問題,C++11 引入了 nullptr 關鍵字,專門用來區分空指針、0。
nullptr 的類型為 nullptr_t,能夠隱式的轉換為任何指針或成員指針的類型,也能和他們進行相等或者不等的比較。
當需要使用 NULL 時候,養成直接使用 nullptr的習慣。
下面用VC6看一下;Win7;
新建一個單文檔工程;
在視類頭文件添加兩個成員函數定義;
在視類CPP文件實現如下;
在OnDraw函數進行調用;分別定義指針為NULL,nullptr;
編譯;不成功,如下;VC6不支持C++ 11;
注釋掉nullptr語句;輸出如下;
?
總結
以上是生活随笔為你收集整理的C++ 11 新特性 nullptr 学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cesium首次加载gltf模型成功
- 下一篇: NPM 安装 TypeScript 和