作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
C++ 错误表达式必须具有整数或枚举类型从具有连接的字符串中获取此值?
所以在 C++ 类的 toString()
中我有代码:
string bags = "Check in " + getBags() + " bags";
我以为我可以这样声明一个字符串? (我来自 Java 背景并尝试学习 C++)。 bags
在 Visual Studio 中有下划线,但问题是:
expression must have integral or enum type.
getBags()
只返回一个 int
。
发生这种情况的另一个例子是:
string totalPrice = "Grand Total: " + getTotalPrice();
getTotalPrice()
返回一个 float
并且是带有下划线的错误。
但是,如果我输入这样的一行:
string blah = getBags() + "blah";
没有错误。
这里有什么不明白的地方?
最佳答案
“ checkin ”
其实是一个const char *
。将 getBags()
(一个 int
)添加到它会产生另一个 const char*
。编译器错误是因为不能添加两个指针。
您需要将 "Check in "
和 getBags()
都转换为字符串,然后再连接它们:
string bags = std::string("Check in ") + std::to_string(getBags()) + " bags";
"bags"
将被隐式转换为 string
。
关于C++ 错误——表达式必须具有整数或枚举类型——从具有连接的字符串中获取这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22753328/
我是一名优秀的程序员,十分优秀!