可能重复:
Shortcut for constructor
C ++中的以下代码段是否相同:
Piece1:
MyFunnyClass o = MyFunnyClass();
Piece2:
MyFunnyClass o;
我知道以下内容并不相同,但我不确定最重要的两个:
MyFunnyClass o = MyFunnyClass () ;
MyFunnyClass o;
o = MyFunnyClass();
答案 0 :(得分:2)
MyFunnyClass o () ;
这根本不以任何方式定义对象。这是Most Vexing Parse。 o
是一个不带任何内容的函数,它返回一个MyFunnyClass
,你声明了它。
真正的语法是
MyFunnyClass o;
这将默认构造一个对象。
MyFunnyClass o = MyFunnyClass();
Value-构造一个对象,然后将其复制或移动到o
。期待这里的椭圆形。