C++ ::将ASCII值转换为字符串

Ken*_*ang 3 c++ string ascii

我试图将表示字符的ASCII值的int转换为单字符字符串.

我尝试了以下,它不起作用:
string s1=(char) 97;

但是,只有当我像这样分开分配时,转换才有效:
string s1; s1=(char) 97;

我很困惑,任何人都可以解释这个区别吗?


提前致谢!

sya*_*yam 7

我尝试了以下,它不起作用: string s1=(char) 97;

那是因为std::string构造函数没有任何需要单个的重载char.而且,复制被省略,因此构造函数被直接调用,operator =()永远不会被调用(在复制省略上记录自己).

只有当我像这样分开分配时,转换才有效: string s1; s1=(char) 97;

现在副本没有任何省略的更多,你真的叫std::string::operator =()确实具有过载接受单一char.