此声明中使用了哪种语法?

时间:2015-03-05 05:31:41

标签: c++

SomeSmartPtr<MyObject> ptr(new MyObject());
ptr->DoSomething(); // Use the object in some way.

我只是一个c#/ java人。函数调用的第一行使用了什么类型的语法。为什么赋值运算符后面没有声明。什么允许你分配和声明那样。

1 个答案:

答案 0 :(得分:3)

声明和初始化对象的第一种形式称为直接初始化。

您也可以使用:

SomeSmartPtr<MyObject> ptr = new MyObject();

称为复制初始化。您可以在http://en.cppreference.com/w/cpp/language/initialization了解C ++支持的各种类型的初始化。