我想不出比这更好的标题因为我真的不明白那条线应该是什么意思。 所以,它在一个函数内部的while循环中,这里又一次:
Object* foo(0);
如果它是指针变量的声明,世界上的(0)
是什么东西? foo
以后真的被用作变量,如下所示:foo=new Something;
答案 0 :(得分:7)
它正在初始化指向NULL
。
相当于:
Object* foo = NULL;
或
Object* foo = 0; // since NULL is defined as 0
答案 1 :(得分:3)
它声明了一个指向Object
的指针,并用0(NULL)初始化它。
答案 2 :(得分:2)
这是C ++不是C的地方之一。在C ++中,
int i(47);
等同于(至少在此上下文中):
int i = 47;
严格地说,它构造了一个名为i
的类int
的对象,并调用构造函数来初始化该对象。所以,
Object * foo(0);
与
完全相同Object * foo = 0;
它构造一个名为foo
的对象,指向类“指向对象”(这里,Object
是一个类型名称,因此它实际上是一个类而不是一个对象)并使用构造函数初始化新的对象。
// B