所有这些行都编译并运行,输出中没有打印:
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 次 |
最近记录: |