j****g 发帖数: 597 | 1 原文 in effective C++
string s3 = s2; // initialization
s1 = s3; // assignment
然后作者说initialization是由constructor来执行。
但是我的想法是第一行不只是initilization, 而是一个initilization后面跟一个
assignment。因为如果只是initilization的话,那么按照作者的说法,那么应该调用
一个copy constructor。实际上是调用default constructor后面跟一个assignment吧。
对不对? |
t****t 发帖数: 6806 | 2 不对! 作者说得没错, 你被打回去重学...
string s3=s2;
差不多相当于
string s3(s2);
虽然这两者之间也有细微差别
吧。
【在 j****g 的大作中提到】 : 原文 in effective C++ : string s3 = s2; // initialization : s1 = s3; // assignment : 然后作者说initialization是由constructor来执行。 : 但是我的想法是第一行不只是initilization, 而是一个initilization后面跟一个 : assignment。因为如果只是initilization的话,那么按照作者的说法,那么应该调用 : 一个copy constructor。实际上是调用default constructor后面跟一个assignment吧。 : 对不对?
|
c*****g 发帖数: 119 | 3 第一个call copy ctr
第二个call =
吧。
【在 j****g 的大作中提到】 : 原文 in effective C++ : string s3 = s2; // initialization : s1 = s3; // assignment : 然后作者说initialization是由constructor来执行。 : 但是我的想法是第一行不只是initilization, 而是一个initilization后面跟一个 : assignment。因为如果只是initilization的话,那么按照作者的说法,那么应该调用 : 一个copy constructor。实际上是调用default constructor后面跟一个assignment吧。 : 对不对?
|
j****g 发帖数: 597 | 4 You guys are correct,被打回去重学。
Thinking in C++ Vol 1 569页。
不过没说两者间有啥差别。请trust明示。 |
t****t 发帖数: 6806 | 5 叫我trust的人一概无视
【在 j****g 的大作中提到】 : You guys are correct,被打回去重学。 : Thinking in C++ Vol 1 569页。 : 不过没说两者间有啥差别。请trust明示。
|
P********e 发帖数: 2610 | 6 hehe
【在 t****t 的大作中提到】 : 叫我trust的人一概无视
|
q*****g 发帖数: 72 | 7 haha
【在 t****t 的大作中提到】 : 叫我trust的人一概无视
|
j****g 发帖数: 597 | 8 en, So what's the difference between
string s3(s2); and string s3 = new string(s2);? |
j****g 发帖数: 597 | 9 汗。我也晕了。
string s3 = new string(s2) 是java用法吧。。。 |
S******8 发帖数: 24594 | 10 Initialization一个local string去heap里刨一堆狗屎出来干吗?谁负责清除啊?
【在 P********e 的大作中提到】 : hehe
|
y*w 发帖数: 238 | 11 请问这个区别是不是和类型转换有关系(比如s2其实不是一个string的时候,但是可以
被cast成一个string的时候)
【在 t****t 的大作中提到】 : 不对! 作者说得没错, 你被打回去重学... : string s3=s2; : 差不多相当于 : string s3(s2); : 虽然这两者之间也有细微差别 : : 吧。
|
t****t 发帖数: 6806 | 12 是
http://www.mitbbs.com/article_t/Programming/23148251.html
【在 y*w 的大作中提到】 : 请问这个区别是不是和类型转换有关系(比如s2其实不是一个string的时候,但是可以 : 被cast成一个string的时候)
|
y*w 发帖数: 238 | |