c++中拷贝构造函数与“=运算符重载”
来源:互联网 发布:windows10视频剪辑软件 编辑:程序博客网 时间:2024/06/05 16:30
本文只是演示何时调用拷贝构造函数,何时用=运算符重载
不考虑类的实现正确。
问题
SomeClass a;
SomeClass b = a; //调用的是拷贝构造函数, 还是=运算符重载?
演示代码 ::
#include <iostream> class TC { public: TC(){std::cout << "TC() \n";} ~TC(){std::cout << "~TC()\n";} TC(TC &a){std::cout << "TC(TC &a)\n";} TC& operator= (TC a){std::cout <<" TC= \n" ; return *this;} private: int x; }; int main(int argc, const char * argv[]) { // insert code here... TC a; TC b = a; b = a; return 0; }
输出 ::
TC()
TC(TC &a)
TC(TC &a)
TC=
~TC()
~TC()
~TC()
分析 :
TC a ; //这个不用考虑 ,对应 TC()
TC b = a; // 这个对应 TC(TC &a) ,
b = a; // 这个对应 TC(TC &a) 和 TC= . 分为两步,第一步 a到参数a,属于定义,拷贝构造. 然后内部执行.
a,b 两个,加上一个参数 T a. 总共3次构造.
0 0
- c++中拷贝构造函数与“=运算符重载”
- c++拷贝构造函数、赋值运算符=重载、深拷贝与浅拷贝
- 【C++】复制构造函数(拷贝构造函数)和=运算符重载使用的区别
- 拷贝构造函数与赋值运算符的重载函数
- [C++]拷贝构造函数和赋值运算符重载
- 重载赋值运算符与拷贝构造函数的区别
- C++拷贝构造函数与运算符重载
- 拷贝构造函数与赋值运算符重载的区别
- 拷贝构造函数与赋值运算符重载的区别
- 重载赋值运算符与拷贝构造函数的区别
- 重载赋值运算符与拷贝构造函数的区别
- 拷贝构造函数与赋值运算符重载的区别
- 拷贝构造函数/重载赋值运算符
- 拷贝构造函数,类的赋值运算符重载,深拷贝与浅拷贝
- c/c++ 构造函数、拷贝构造函数、析构函数和赋值运算符重载
- 关于拷贝构造函数和重载成员运算符=
- 拷贝构造与重载运算符
- C++:复数类构造函数、拷贝构造、运算符重载、析构函数
- response.setHeader("refresh",。。。无效 每次都需要手动刷新才能完成跳转
- 一天一个设计模式之适配器模式(Adapter)
- poj1065 Wooden Sticks
- springMVC+mybatis多数据源配置(dao扫描版本)
- Java 匿名对象
- c++中拷贝构造函数与“=运算符重载”
- Codeforces Round #253 (Div. 2)
- iOS开发
- Java this的使用
- fork与vfork的区别
- 查找oracle比较慢的session和sql
- uva 10115 Automatic Editing(strstr+sprintf)
- USTC 1005 Booklet Printing
- poj 1562:Oil Deposits