我只是想知道为什么有两种方法来指定空指针。我一直在浏览link,但没有清楚地了解它的用途。
有人可以举出什么时候使用什么的好例子吗?
答案 0 :(得分:22)
自2005年以来,C ++ / CLI语言已经有了一个nullptr
关键字。当C ++ 11为C ++采用了nullptr关键字时,这就引起了一个问题。现在有两个,一个用于托管代码,另一个用于本机代码。 C ++ / CLI编译器可以编译它们。因此,当您指的是本机空指针时,必须使用__nullptr,当您指的是托管空指针时,必须使用nullptr。
仅在使用/ clr进行编译时才有意义。换句话说,编写C ++ / CLI代码。只需在C ++代码中使用plain nullptr。
答案 1 :(得分:0)
如果我正确读取它,您应该使用nullptr
作为托管指针,__nullptr
表示非托管指针。但是,由于nullptr
可用于托管非托管指针,因此我个人认为没有理由使用__nullptr
。