相信写过C++的人肯定用过:
string str2(“11”);
string str1 = str2;
现在就让我深入挖掘下string str1 = str2;所包含的内容。
第一层:
把str2的内容“11”复制给了str1
第二层:
先定义了str1对象,把str2对象赋值给str1
第三层:
string类型为什么能够赋值,原来string实现了赋值运算符重载。
理解到string str1 = str2;的伪代码可以写为:
string str1;
str1.=(str2)
str1=str2的过程分析如下:
1、创建string&的临时变量tmp
2、调用赋值运算符重载函数
3、把str2、str1依次压栈,执行函数
4、返回值初始化tmp
5、销毁tmp
第五层:
我不理解:
请大神帮忙解释下!
版权声明:本文为博主原创文章,未经博主允许不得转载。
C++ string copy的追根挖底!看看你理解的层度是那层
原文地址:http://blog.csdn.net/zp752963831/article/details/46981679