I just some reviews on how I can make it more efficient or cleaner and what I should fix in general.class bankAcc{public:    bankAcc() = default;    bankAcc(string fn, string ln) : firstName(fn), lastName(ln) {}    bool createUser(istream &is);    bool login() const;private:    bool correctLogin(const string&, const string&) const;    static vector<string> usernames;    static vector<string> passwords;    string firstName, lastName;    string username, password;};vector<string> bankAcc::usernames;vector<string> bankAcc::passwords;bool bankAcc::createUser(istream &is) {    is >> username >> password;    if (is.fail()) {        cout << Invalid option << endl;        cin.clear();        return false;    }    usernames.push_back(username);    passwords.push_back(password);    return true;}bool bankAcc::login() const {    bool login;    string tempUser, tempPass;     cin >> tempUser >> tempPass;    if (cin.fail()) {        cout << Invalid options << endl;        cin.clear();        return false;    }    login = correctLogin(tempUser, tempPass);    if (login == true) {        cout << Logged on << endl;        return login;    }       else {        cout << Incorrect info << endl;        return login;    }    return login;    }bool bankAcc::correctLogin(const string &tempUser, const string &tempPass) const {    if (usernames.empty() || passwords.empty())        return false;    bool usernamePassed, passwordPassed; int cnt = 0;    for (auto c : usernames) {        if (tempUser == c) {            usernamePassed = true;            break;        }        else {            usernamePassed = false;        }        ++cnt;    }    if (passwords[cnt] == tempPass && cnt < passwords.size()) {        passwordPassed = true;    }    else {        passwordPassed = false;    }    return usernamePassed && passwordPassed;}
Fake bank account class
c++;finance