我一直在處理命令提示符下的用戶數據庫。它可以讓你添加一個用戶名和密碼,並登錄。當我編譯它時,我得到錯誤no match for 'operator==' in
。我不完全確定是什麼導致了它。另外,我將它全部存儲在一個類中。創建用戶數據庫錯誤「不匹配'運營商=='在.....」 - C++
我的頭文件是:
#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])
如果需要,我還可以添加更多代碼片段。
是否構造實際編譯? – 2013-02-10 01:39:44
嗯,我認爲它確實是因爲我調用構造函數後的錯誤函數。 – ponger3d 2013-02-10 01:41:22
用戶名[SIZE]沒有做你認爲的事情;它索引到一個字符串並忽略返回的字符,而不是聲明一個大小爲SIZE的數組。因此,用戶名和用戶名是相同的類型,但是用戶名[i]返回一個字符,因此不能與運營商==用戶名進行比較。改爲使用矢量。 –
2013-02-10 01:43:21