码迷,mamicode.com
首页 > 其他好文 > 详细

copy构造与copy复制

时间:2014-09-30 14:29:19      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:io   os   sp   c   on   代码   amp   r   as   

“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复制

标签:io   os   sp   c   on   代码   amp   r   as   

原文地址:http://www.cnblogs.com/tiantianchaoren/p/4001575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!