本文探讨了C++中NULL
与nullptr
的区别。NULL
是一个宏定义,通常被定义为0
,在函数重载时可能导致歧义;而nullptr
是一个特殊类型,专门用于表示空指针,能够明确调用指针类型的函数重载。通过代码示例,文章展示了nullptr
在避免函数重载歧义中的优势,帮助读者理解其在现代C++编程中的重要性。
NULL 与 nullptr 的区别
NULL 为宏定义
1 |
NULL的类型不明显,而一下情况会出现函数重载不明确的情况
1 | void f1(int i){} |
而nullptr
是一个特殊类型(nullptr_t
)专门用来指代空指针。见下面代码
1 | void f1(int i){} ///< #1 |