在普通的c ++中,有些指针如果没有指向任何对象,则用NULL表示。
class* object1 = NULL; //NULL is a special value that indicates
//that the pointer is not pointing to any object.
if(object1 == NULL) {
cout << "the pointer is not pointing to any object" << endl;
}
else {
cout << "the pointer is pointing to any object" << endl;
}
那么使用C ++ / CLI Handles会有什么样子呢? 我在互联网上找到了这个。有人可以告诉我,我是否正确吗?
class^ object2 = nullptr;
if(object2 == nullptr){
cout << "the pointer is not pointing to any object" << endl;
}
else {
cout << "the pointer is pointing to any object" << endl;
}
答案 0 :(得分:1)
您不应在C ++中使用jquery.matchHeight.js
。选择NULL
。
考虑一下:
nullptr
因为我们人类将void some_function(some_class* test);
void some_function(int test);
int main()
{
some_function(NULL);
}
解释为指针&#34;类型,&#34;程序员可能期望调用第一个重载。但是NULL
通常被定义为整数NULL
- 因此编译器会选择第二个。如果你了解发生了什么,这不是一个问题,但它并不是非常直观。
此外,0
是有效的内存地址。在桌面编程中,我们通常不会将数据分配到地址0
,但它可能在某些其他环境中有效。那么我们可以做些什么来检查0
的分配?
为了消除歧义,C ++提供了一个明确的0
。它不是一个整数,它有自己的特殊类型,不能被误解:这个指针有一个强类型的空值。