我想不出比这更好的标题了,因为我真的不明白那行应该是什么意思。所以,它在一个函数内的一个while循环中,这里又是:
Object* foo(0);
如果它是一个指针变量的声明,那到底是什么(0)
东西?在几行之后将foo
真的用作变量,如下所示:foo=new Something;
它正在初始化指向NULL
.
相当于:
Object* foo = NULL;
或者
Object* foo = 0; // since NULL is defined as 0
它声明一个指向Object
并用 0 (NULL) 初始化它的指针。
这是 C++ 不是 C 的地方之一。在 C++ 中,
int i(47);
等效于(至少在这种情况下):
int i = 47;
严格来说,它构造了一个名为i
of class的对象,int
并调用了一个构造函数来初始化该对象。所以,
Object * foo(0);
完全一样
Object * foo = 0;
它构造了一个名为foo
“pointer-to-Object”类的对象(这里Object
是一个类型名称,所以它实际上是一个类而不是一个对象)并使用一个构造函数来初始化新对象。
//B