char c= 'a';
string s = "abs";
string ss = c +s;在这个过程ss = c + s;很明显有类型转换,但是我不是很明白是怎么转换的,那位大神解释下?
同理int i = 3;
string s += i;这样的代码让我很疑惑,他不是隐式转换。我很想知道他们编译过程中是如何处理的。

解决方案 »

  1.   

    应该是在string的操作符重载中加入了类型转换机制,在右操作数中只要含有字符串就可以将结果转换成string类型的,我是这么理解的
      

  2.   

     第一个,  是这样:把C的值拿出来和S的值连接,不用管他们类型, 然后在创建String类型的ss 保存它,所以它就变成string类型的, 第二个同理,只是拿值先连接,再保存,
      

  3.   

    很明显你的回答是错误的,例如
    int i =1;
    int j = 2;
    string = i + j;
    按你的理解这段代码是正确的,其实不然。
    不过感谢你的回帖。