• 主页
  • 直接初始化与复制初始化与拷贝赋值

直接初始化与复制初始化与拷贝赋值

直接初始化直接调用与实参匹配的构造函数,复制初始化总是调用复制构造函数。复制初始化首先使用指定构造函数创建一个临时对象,然后使用复制构造函数将那个临时对象复制到正在创建的对象。

 

Screen s1;          // 使用默认构造函数初始化s1
Screen s2 = s1;     // 隐式调用拷贝构造函数s2
Screen s3(s2);     // 显示调用拷贝构造函数s3

因为s2是刚刚被声明要初始化,所以那个等号没有调用拷贝赋值

如果是如下语句,

Screen s1;          // 使用默认构造函数初始化s1
Screen s2 = s1;     // 隐式调用拷贝构造函数s2
Screen s3(s2);     // 显示调用拷贝构造函数s3
s2 = s3;

第四句就会调用拷贝赋值操作,而且s2也不需要析构,直接在原有内存上赋值即可。

 

转载请注明出处:http://www.jxbyjx.net/article/20230429/741474.html