string类疑问

来源:百度知道 编辑:UC知道 时间:2024/07/02 10:37:48
c++的string类疑问

string s1=s2;


string s1;
string s2;
s1=s2;

两种赋值法调用的构造函数有什么区别?
请仔细说明。
调用的构造函数类型分别是什么?

第一种构造函数为String(String str){}。string s1=s2;表示通过构造函数赋值。
第二种构造函数为String(){}
第二种的赋值是通过 等号 重定义实现的。即s1=s2;这一句。

第一个 在内存中 只开了一个 S1的地址 放的值是S2
第二个 在内存中 开了 S1和S2两个地址 并且 两个都没有具体的值

简单的说就是第一个中s1是变量,s2是字符串。第二个两个都是变量。

第一个里面的s2是什么啊,如果是变量,那和第二个好像没什么区别,如果是字符串,好像少了引号吧

string s1=s2;如果s2是一个string类型的变量那么s1的值等于s2的值,
你的说法是不对的,string不能这样同时声名两个string类型的变量,找你的说法写法应该是这样的string s1,s2;这个写法等同于
string s1;
string s2;
表示声明了两个string类型的变量

string s1;
string s2;
s1=s2;
你这个的意思是,这两个string类型的变量具有相同值。将s2的值赋值给s1