首页 > 代码库 > copy构造与copy复制
copy构造与copy复制
“copy构造”与“copy复制”误区:----“=”语法也可以用来调用copy构造函数:
如:Constr object3 = object1;
区别在于:如果定义一个新的对象(如Constr object3),一定会有个构造函数被调用,不可能调用复制操作。
如果没有新对象被定义(如object1 = object2;),不会有构造函数被调用,你们当然是“copy复制”操作被调用!
示例代码:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class Constr
{
public:
Constr()
{
cout << "Constr()" << endl;
}
Constr(const Constr& con)
{
cout << "Constr(const Constr& con)" << endl;
}
Constr& operator = (const Constr& con)
{
cout << "Constr& operator = (const Constr& con)" << endl;
return *this;
}
};
int main()
{
Constr object1;
Constr object2(object1);
object1 = object2;
Constr object3 = object1;
return 0;
}
copy构造与copy复制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。