string& str(未初始化) = str1和str(已初始化过) = str1的区别和联系
来源:互联网 发布:广州趣丸网络 收购 编辑:程序博客网 时间:2024/05/21 17:27
string str1("abc");string& str = str1; //①string str2("cba");str = str2; //②
标题就是①和②的区别和联系,因为有时候容易混淆,其实仔细看也就明了了,不过既然混淆过也就写出来。
上面①重载了该类的赋值操作符,只是没有进行内部成员赋值的操作,仅仅是给了对象的位置,仅仅做引用的初始化;
上面②也重载了该类的赋值操作符,但是进行了内部成员的空间清理并且作了新的分配和赋值。
①②各自对应着自己的代码操作,看下面:
44.String & String::operator=(const String &other) 45.{ 46. if (this == &other) 47. return *this; 48. 49. delete []m_data; 50. 51. int len = strlen(other.m_data); 52. m_data = new char[len+1]; 53. strcpy(m_data,other.m_data); 54. 55. return *this; 56.}
46--47就是①的代码操作;49--55就是②的代码操作。
- string& str(未初始化) = str1和str(已初始化过) = str1的区别和联系
- String str1 = "123"; if("123".equals(str1))和if(str1=="123")的区别
- shell 脚本string的截取(str1=${str#*string} str2=${str%sring*})
- java中String str="abc"与String str1=new String("abc")区别
- String str = "str"和String str = new String("str")的区别
- String str1 = new String("abc")与 String str1 = "abc" 的区别
- String str=new String("x"); 和String str="x"的区别
- 求满足 Str1<Str<Str2 且 0<Str.length <=len 的字符串个数
- str1==str2和str1.equals(str2)的问题
- isNull(str),isEmpty(str)和str=的区别
- isNull(str), isEmpty(str)和 str = ""的区别
- isNull(str),isEmpty(str)和str=""的区别
- isNull(str), isEmpty(str)和 str = ""的区别
- String str1="abc";和String str2=new String("abc");的区别
- String str1="abc";和String str2=new String("abc");的区别
- String str1="abc";和String str2=new String("abc");的区别
- String str1="abc";和String str2=new String("abc");的区别
- JS 解析字符串str = str1, str2 | str3, str4 | ...
- Regionals 2010, Asia - Kuala Lumpur
- 线段树的基本实现
- linux Kernel 多核多线程编程
- 采用递归法生成M叉树
- CODE 20: Path Sum II
- string& str(未初始化) = str1和str(已初始化过) = str1的区别和联系
- 移动互联网入口
- TimingFramework笔记
- MIME笔记
- 保养肾精的三种方法
- POJ 2362 Square DFS
- codeforces 280C
- tar的用法
- LeetCode | Longest Common Prefix