gpt4 book ai didi

c++ - 字符串初始化失败 : "expression must have integral or unscoped enum type"

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:25:09 26 4
gpt4 key购买 nike

我有两个不同的样本:

std::string* to_return = new std::string("I love"  + _name + " so much!");

和:

std::string* to_return = new std::string("I love"  + "Martin" + " so much!");

第一个示例说明了尝试添加另一个名为“_name”的简单字符串对象时的初始化。在第二个示例中,我只连接了三个不同的字符串...

尝试制作第二个样本时出现错误:

expression must have integral or unscoped enum type

最佳答案

"I love" + _name + " so much!"评估为 std::string因为该类包含重载 +运营商到const char*在两边,和_namestd::string实例。

但是编译器不能使用任何重载的+对于 "I love" + "Martin" + " so much!"因为这些只是内置的 const char[] + 的文字无效,编译失败。

std::string() + "I love" + "Martin" + " so much!" ,但是会起作用,就像诉诸 C 风格的编译时连接一样:

std::string("I love" "Martin" " so much!");


最后,如果 "love" 后有空格,Martin 可能会更欣赏这条消息.

关于c++ - 字符串初始化失败 : "expression must have integral or unscoped enum type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41632889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com