我正在尝试将表示字符的 ASCII 值的 int 转换为单字符串。
我尝试了以下方法,但它不起作用:
string s1=(char) 97;
但是,只有当我像这样分解分配时,转换才有效:
string s1;
s1=(char) 97;
我对此感到困惑,任何人都可以解释其中的区别吗?
提前致谢!
我尝试了以下方法,但它不起作用:
string s1=(char) 97;
那是因为std::string
构造函数没有任何需要单个char
. 而且,复制被省略了,因此直接调用构造函数,operator =()
从不调用(在复制省略上记录自己)。
只有当我像这样分解分配时,转换才有效:
string s1; s1=(char) 97;
现在副本不再被省略,你真的在调用std::string::operator =()
它确实有一个接受单个char
.