nullptr关键字及用法

  为什么需要nullptr? NULL有什么毛病?

  我们通过下面一个小小的例子来发现NULL的一点问题:

c++11新特性之nullptr 和NULL
//示例代码1.0 http://www.cnblogs.com/feng-sc/p/5710724.html
class Test
{
public:
    void TestWork(int index)
    {
        std::cout << "TestWork 1" << std::endl;
    }
    void TestWork(int * index)
    {
        std::cout << "TestWork 2" << std::endl;
    }
};

int main()
{
    Test test;
    test.TestWork(NULL);
    test.TestWork(nullptr);
}
c++11新特性之nullptr 和NULL

  运行结果:

     c++11新特性之nullptr 和NULL

NULL在c++里表示空指针,看到问题了吧,我们调用test.TestWork(NULL),其实期望是调用的是void TestWork(int * index),但结果调用了void TestWork(int index)。但使用nullptr的时候,我们能调用到正确的函数。

相关文章:

  • 2021-06-07
  • 2022-12-23
  • 2021-06-10
  • 2021-10-24
  • 2021-08-12
  • 2021-12-02
  • 2022-01-11
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-18
  • 2021-08-04
  • 2021-11-20
  • 2022-01-29
相关资源
相似解决方案