没有运算符“==”匹配这些操作数

时间:2013-12-22 09:09:48

标签: c++ operands

我不知道造成这种情况的原因,但我认为这与它有关 功能“password_checker”??

这是我的代码:

#include <iostream>
#include <Windows.h>
#include <string>

using namespace std;

string password_checker();

int main()
{
string password;
cout << "please enter your password: " << endl;
cin >> password;
if (password == password_checker)
{
    cout << "Access granted" << endl;
}
else if (password == password_checker)
{
    cout << "Access denied" << endl;
}
Sleep(15000);
return 0;
}   

string password_checker()
{
string password = "123456";
return password;
}

3 个答案:

答案 0 :(得分:4)

password == password_checker

那是试图在字符串和函数指针上调用operator==。您需要调用该函数以获得字符串:

password == password_checker()

答案 1 :(得分:3)

你应该调用函数:password_checker()

else if部分,它应该不等于,!=else

答案 2 :(得分:2)

编译器认为,这符合 if (password == password_checker) 您正试图查看密码变量和password_checker函数是否相同。你必须调用该函数:password_checker()