复制构造函数与赋值操作符之间的区别
来源:互联网 发布:手机淘宝发布宝贝教程 编辑:程序博客网 时间:2024/05/16 05:47
复制构造函数与赋值操作符之间的区别
复制构造函数与赋值操作符之间的区别
复制构造函数又称拷贝构造函数,它与赋值操作符间的区别体现在以下几个方面
1.从概念上区分:
复制构造函数是构造函数,而赋值操作符属于操作符重载范畴,它通常是类的成员函数
2.从原型上来区分:
复制构造函数原型ClassType(const ClassType &);无返回值
赋值操作符原型ClassType& operator=(const ClassType &);返回值为ClassType的引用,便于连续赋值操作
3.从使用的场合来区分:
复制构造函数用于产生对象,它用于以下几个地方:函数参数为类的值类型时、函数返回值为类类型时以及初始化语句,例如(示例了初始化语句,函数参数与函数返回值为类的值类型时较简单,这里没给出示例)
ClassType a; //
ClassType b(a); //调用复制构造函数
ClassType c = a; //调用复制构造函数
而赋值操作符要求‘=’的左右对象均已存在,它的作用就是把‘=’右边的对象的值赋给左边的对象
ClassType e;
Class Type f;
f = e; //调用赋值操作符
4.当类中含有指针成员时,两者的意义有很大区别
复制构造函数需为指针变量分配内存空间,并将实参的值拷贝到其中;而赋值操作符它实现的功能仅仅是将‘=’号右边的值拷贝至左值,在左边对象内存不足时,先释放然后再申请。当然赋值操作符必须检测是否是自身赋值,若是则直接返回当前对象的引用而不进行赋值操作。
- 复制构造函数与赋值操作符之间的区别
- 复制构造函数与赋值操作符之间的区别
- 复制构造函数与赋值操作符之间的区别
- 复制构造函数,赋值操作符重载之间的区别
- C++复制构造函数和赋值操作符的区别
- C++复制构造函数和赋值操作符的区别
- 赋值操作符与复制构造函数
- C++的对象复制构造函数与赋值操作符重载的区别小结
- 复制构造函数与赋值操作符的重载
- 构造函数,复制构造函数与拷贝赋值操作符
- 复制构造函数 与 赋值操作函数
- 复制构造函数与赋值函数的区别
- 复制构造函数 与 赋值函数 的区别
- 复制构造函数 与 赋值函数 的区别
- 复制构造函数 与 赋值函数 的区别
- 复制构造函数 与 赋值函数 的区别
- 拷贝构造函数与重载赋值操作符的区别
- c++复制构造函数和赋值操作符区别
- WebApp 开发中常用的代码片段
- SQL与T_SQL
- Java的形参与实参
- 【DP】 hdu4362 Dragon Ball
- 【倍增/强连通分量】暴走的猴子
- 复制构造函数与赋值操作符之间的区别
- 不可变的String对象
- java.io.IOException: File /home/hadoop/mapred/system/jobtracker.info could only be replicated to 0 n
- Acmer必看的26个对acm态度
- HDOJ 2844 Coins
- 《加密与解密》(第三版)【1】基础知识——小结
- Linux进程间通信IPC(一)-- pipe
- ACM入门,简介,基础知识
- 转载和积累系列 - Jquery 弹出层代码