在编程逻辑世界,有因必有果,如果一个结果含糊不定(二义性),显然是我们不想要的。C++11中引入nullptr是为了解决NULL的二义性问题。
NULL二义性的体现
当函数调用func(NULL)时会是怎样执行?
先看C++对NULL的定义:
我们可以看到C++的NULL被宏定义为0,所以函数会因为NULL为0而导致调用函数,这是我们不想要的结果。
那怎么解决问题呢?
使用nullptr(空指针常量),当函数调用时则会调用函数。
分享快讯到朋友圈
领取专属 10元无门槛券
私享最新 技术干货