这个问题已经在这里有了答案:




9年前关闭。






在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;

}

最佳答案

几乎?没什么,一个类。

在后台,一个调用该类的显式构造函数,而另一个调用默认的构造函数。在任何情况下,您的构造函数都可能会做相同的事情(在上述情况下,尽管您理论上可以将其称为复制构造函数,但它们都将做同样的事情),尽管对于POD类型而言并非如此。

10-07 20:21