c++ 使用另一个对象构造一个对象的不同方法[复制]

mo49yndu  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(130)

此问题在此处已有答案

Is there a difference between copy-initialization and direct-initialization?(9个回答)
6天前关闭
前几天我读了这篇文章:Constructor of type int
但我想我得先澄清一件事。
假设我有一个类Myclass,我已经创建了一个对象obj1
写作之间有什么区别:

Myclass obj2(obj1);

字符串

Myclass obj2 = obj1;



就像这篇文章说的:What happens when a new object is created using another (existing) object?
是否有一个临时对象被创建并分配给新创建的对象?复制构造函数是否被调用来创建那个临时对象?那么新创建的对象是由什么构造的?
我很困惑。
我想这个问题以前一定有人问过,但我就是找不到一个我能想到的关键词。

jaql4c8m

jaql4c8m1#

从严格的Angular 来看,

Myclass obj2(obj1);

字符串
将是direct initialization

Myclass obj2 = obj1;


将是copy initialization
但是,两者的效果是完全相同的:Myclass复制构造函数被调用。

相关问题