创建用户数据库错误“不匹配'运算符=='在......” - C ++

时间:2013-02-10 01:37:00

标签: c++ function operators

我一直在命令提示符下处理用户数据库。它允许您添加用户名和密码并登录。当我编译它时,我收到错误no match for 'operator==' in。我不太确定是什么导致了它。此外,我已将所有内容存储在一个类中。

我的标头文件是:

#ifndef USER_PSW_H
#define USER_PSW_H
#include <string>


class User_Psw
{
    public:
        User_Psw();
        void addToDatabase();
        void getNameIndex();
        bool PasswordMatches();
        void UserCheck();
    protected:
    private:
        int sizeOfDatabase;
        int index;
        std::string Usernames;
        std::string Password;
        std::string username;
        std::string password;
};

#endif // USER_PSW_H

构造函数是:

User_Psw::User_Psw()
{
    const int SIZE = 100;
    index = 0;
    sizeOfDatabase = 0;
    Usernames[SIZE];
    Password[SIZE];
}

包含实际错误的函数是:

void User_Psw::getNameIndex()
{
    for(int i=0; i < sizeOfDatabase; i++)
    {
        if (username == Usernames[i])
        {
            index = i;
        }
    }
}

包含错误的实际代码行为if (username == Usernames[i])

如果需要,我还可以添加更多代码段。

1 个答案:

答案 0 :(得分:2)

这不起作用,因为当您实际将类型定义为Usernames时,您正在像向量一样访问std::string

你想要这样的东西:

std::vector<std::string> Usernames;

然后您可以像访问它一样访问它:

if (Usernames[i] == username) { // etc