我正在尝试将表示字符的ASCII值的int转换为单字符字符串。
我尝试了以下操作,但不起作用:
string s1=(char) 97;
但是,仅当我将作业分开时,转换才有效:
string s1; s1=(char) 97;
我对此感到困惑,谁能解释其中的区别?
提前致谢!
我尝试了以下操作,但不起作用:
string s1=(char) 97;
那是因为std::string
构造函数没有任何需要一个重载的重载char
。而且,省略了copy,因此直接调用了构造函数,operator =()
而从未调用过(在copy Elision上自己编写文档)。
仅当我将作业分开时,转换才有效:
string s1; s1=(char) 97;
现在不再删除该副本,您实际上是在调用std::string::operator =()
它,但确实有一个接受single的重载char
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句