0

我想不出比这更好的标题了,因为我真的不明白那行应该是什么意思。所以,它在一个函数内的一个while循环中,这里又是:

  Object* foo(0);

如果它是一个指针变量的声明,那到底是什么(0)东西?在几行之后将foo真的用作变量,如下所示:foo=new Something;

4

3 回答 3

7

它正在初始化指向NULL.

相当于:

Object* foo = NULL;

或者

Object* foo = 0; // since NULL is defined as 0
于 2012-05-08T22:17:32.073 回答
3

它声明一个指向Object并用 0 (NULL) 初始化它的指针。

于 2012-05-08T22:18:08.360 回答
2

这是 C++ 不是 C 的地方之一。在 C++ 中,

int i(47);

等效于(至少在这种情况下):

int i = 47;

严格来说,它构造了一个名为iof class的对象,int并调用了一个构造函数来初始化该对象。所以,

Object * foo(0);

完全一样

Object * foo = 0;

它构造了一个名为foo“pointer-to-Object”类的对象(这里Object是一个类型名称,所以它实际上是一个类而不是一个对象)并使用一个构造函数来初始化新对象。

//B

于 2012-05-08T23:59:58.513 回答