构造函数,拷贝构造函数,赋值操作符的调用时机
2012-08-15 14:59
274 查看
#include <iostream.h> class TEST { public: TEST() { cout<<"默认构造函数"<<endl; } TEST(const TEST&t) { cout<<"拷贝构造函数"<<endl; } TEST &operator =(const TEST&t) { cout<<"赋值操作符"<<endl; return *this; } }; void fun(TEST t){} void main() { cout<<"构造t1 "; TEST t1; cout<<"构造t2 "; TEST t2=t1; cout<<"构造t3 "; TEST t3(t1); cout<<"赋值 "; t3=t1; cout<<"函数参数的构造方式 "; fun(t1); }
![](http://my.csdn.net/uploads/201208/15/1345014502_7930.png)
尤其需要注意的是,即使是‘=’号,也未必是赋值操作符,就像TEST t2=t1;调用的是拷贝构造函数,因为此时是构造t2的阶段,所以只能是调用构造函数。
但是如果已经定义了t2,然后t2=t1;则调用赋值操作符。
还有,以“传值”的方式当作参数时,也调用拷贝构造。
相关文章推荐
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- 对构造函数、拷贝构造函数和赋值操作符调用的简单回顾
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- 对构造函数、拷贝构造函数和赋值操作符调用的简单回顾
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- 构造函数、复制构造函数和赋值操作符的调用
- C++ 拷贝构造函数和重载赋值操作符相互调用分析 [转]
- 编写合适的构造函数、拷贝构造函数、赋值操作符、析构函数(后三者一般同时出现,称为“大三元法则”),那么这个概念就完整并且不用再考虑其资源(内存)管理的问题。
- 拷贝构造函数 赋值构造函数 自动转型构造函数的调用
- C++拷贝构造函数的调用时机,如没有重载等号操作符,需重写使用深拷贝
- C++类中的4个特殊函数 - 缺省构造函数、拷贝构造函数、拷贝赋值操作符和析构函数
- 构造函数,拷贝构造函数,赋值构造函数的调用机制
- C++面试题,自己实现String类的构造函数,拷贝构造函数,赋值操作符,append,replace,+运算符重载等
- 拷贝构造函数和赋值构造函数调用次序
- c++ 默认构造函数,构造函数,复制构造函数,赋值操作符,析构函数调用示例
- C++类中的4个特殊函数 - 缺省构造函数、拷贝构造函数、拷贝赋值操作符和析构函数
- 构造函数、拷贝构造函数、赋值操作符
- Effective C++学习系列一:拷贝构造函数与赋值符号的调用时机
- 十、构造函数和析构函数(四) 拷贝构造函数、默认拷贝构造函数、拷贝构造函数调用几种情况、深拷贝浅拷贝、构造函数和=操作符区别、禁止对象拷贝
- 构造函数、拷贝构造函数、赋值操作符、析构函数、debug与release