这些作业是否采用相同的模式?

时间:2012-09-17 17:32:56

标签: c++ constructor initialization default-constructor

  

可能重复:
  Shortcut for constructor

C ++中的以下代码段是否相同:

Piece1:

MyFunnyClass o = MyFunnyClass();

Piece2:

MyFunnyClass o;

我知道以下内容并不相同,但我不确定最重要的两个:

MyFunnyClass o = MyFunnyClass () ;

MyFunnyClass o;
o = MyFunnyClass();

1 个答案:

答案 0 :(得分:2)

MyFunnyClass o () ;

这根本不以任何方式定义对象。这是Most Vexing Parseo是一个不带任何内容的函数,它返回一个MyFunnyClass,你声明了它。

真正的语法是

MyFunnyClass o;

这将默认构造一个对象。

MyFunnyClass o = MyFunnyClass();

Value-构造一个对象,然后将其复制或移动到o。期待这里的椭圆形。