C ++语法:Object * foo(0);

时间:2012-05-08 22:16:06

标签: c++ syntax

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

  Object* foo(0);

如果它是指针变量的声明,世界上的(0)是什么东西? foo以后真的被用作变量,如下所示:foo=new Something;

3 个答案:

答案 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