我是编程和c ++的新手
以下是我遇到的问题的图片:
http://i.imgur.com/tGJR3pO.jpg
早些时候(不在图片中),我写了“字符串标准;”然后提示用户输入“gas”或“total”。
我搜索了问题,但无法找到导致此错误的原因。有人可以向我解释是什么导致它以及我如何解决它?
答案 0 :(得分:0)
在c ++中你不能用这种方式比较字符串。您比较他们的地址而不是他们的值。尝试Google'字符串比较c ++'
==运算符的默认行为是比较两个对象地址(如果它们完全相同)。如果你有2个实例,一个存储在0xff0而另一个存储在0xfff - 压缩是if(0xff0 == 0xfff),当然答案是假的。 比较用于比较它们的值 - 在这种情况下 - 如果字符串的内容(“gas”)等于其他字符串内容。有趣的是你可以覆盖==方法按你想要的方式行事 - 在字符串的情况下(如相关问题所示)==就像比较一样
答案 1 :(得分:0)
请查看criteria
的课程。
假设: criteria
的班级为MyCriteria
。
在您的班级MyCriteria
中,函数operator==(const char* pc)
未返回正确的值。
您需要为类MyCriteria
实现一个函数,如下所示:
bool operator==(const char* pc);
PS:我想函数operator==
会在您的班级void
中返回MyCriteria
。像这样:
class MyCriteria
{
public:
void operator==(const char* pc)
{
// code
}
};