C++没有所谓的"赋值构造函数"
2015-10-10 09:22
183 查看
发现蛮多C++
coder存在一个误会:"string str2 = str1;" 调用赋值构造函数。"string str2(str1);"
调用拷贝构造函数。
但其实C++有拷贝构造函数(有人叫复制构造函数),有赋值运算符重载,但没有赋值构造函数!
"string str2
= str1;" 和 "string str2(str1);"效果完全一样,都是调用拷贝构造函数。
"string
str3; str3 = str1;",第一句调用构造函数,第二句调用赋值运算符。
ps:个人觉得蛮bt的,也是C++语法细节特别多的一个佐证。
coder存在一个误会:"string str2 = str1;" 调用赋值构造函数。"string str2(str1);"
调用拷贝构造函数。
但其实C++有拷贝构造函数(有人叫复制构造函数),有赋值运算符重载,但没有赋值构造函数!
"string str2
= str1;" 和 "string str2(str1);"效果完全一样,都是调用拷贝构造函数。
"string
str3; str3 = str1;",第一句调用构造函数,第二句调用赋值运算符。
ps:个人觉得蛮bt的,也是C++语法细节特别多的一个佐证。
相关文章推荐
- C++中用字符串来切割字符串
- C++中如何split字符串
- 使用c++实现时间轮算法(Timing-Wh…
- C++的Stack实现
- C++中用模板模拟多态及其优缺点
- c++中异常的时间代价
- 简化C++内存管理,避免内存泄露的…
- 史上最简单的c++四种cast使用教程
- c++中实现类似java printStackTrac…
- 代码复用之道:回调机制及c++实现…
- 跨平台c++编程差异小结
- 【LeetCode从零单刷】Majority Element
- 进击的KFC:第二节:C语言:关系运算符、逻辑运算符、if 、条件运算符、switch..case的学习
- 【LeetCode从零单刷】Move Zeroes
- C++中的explicit关键字
- CPP-Inheritance
- C++工作的心得体会
- 线性表的顺序存储实验程序
- UE4的AI c++代码初始化
- c语言学习笔记(11)宏定义使用与分析