所有这些行都编译并运行,输出中没有打印:
std::string ss{6};
ss=7;
std::cout << "ss " << ss << "\n";
Run Code Online (Sandbox Code Playgroud)
我没有看到任何引用的构造函数std::string,这表明它可以将整数强制转换为字符串,那么为什么编译器不会抱怨?
"问题"是a std::string可以从中分配char并int可以隐式转换为char.
看看std :: basic_string :: operator = point(4):
basic_string& operator=( CharT ch );
Run Code Online (Sandbox Code Playgroud)
编辑
正如MM的评论中所述,std::string ss{6};调用构造函数initializer_list<char>(参见std::basic_string::basic_string点(9))......问题重新出现.
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |