所有这些行编译并运行,输出中没有打印任何内容:
std::string ss{6};
ss=7;
std::cout << "ss " << ss << "\n";
我没有看到任何暗示它可以将整数强制转换为字符串的 std::string
的引用构造函数,那么为什么编译器不报错呢?
最佳答案
“问题”是 std::string
可从 char
分配和 int
可隐式转换为 char
.
看看std::basic_string::operator=第 (4) 点:
basic_string& operator=( CharT ch );
编辑
如 M.M's comment 中所述, std::string ss{6};
调用构造函数 initializer_list<char>
(参见 std::basic_string::basic_string
点 (9)
)......问题再次出现。
关于c++ - 为什么我可以将 Int 分配给 String 而不会出现编译器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38048208/