这两个C ++语句之间有什么区别?

时间:2011-04-10 08:17:12

标签: c++ syntax constructor initialization new-operator

  

可能重复:
  Do the parentheses after the type name make a difference with new?

在C ++中,这两个语句之间有什么区别?

Class clg
{

  public :

  int x,y,z;

};

int main(void)

{

  clg *ptrA = new clg;    //

  clg *ptrB = new clg();  //  what is the importance of "()"  ???

 return 0;

}

1 个答案:

答案 0 :(得分:-1)

实际上?没什么,对于一个班级。

在引擎盖下,一个调用类的显式构造函数,而另一个调用默认构造函数。在任何情况下,你的构造函数都可能做同样的事情(在上面的例子中,虽然理论上你可以调用复制构造函数),但POD类型不适用。