Функция с переменными классов и векторов в c ++ - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть класс с именем Party, который включает в себя приватную переменную с именем Players, которая является типом vector, sting.

class Party
{
    vector <string> players;

    public: 
    Party (string party_name, string boss)  {}; 
    ~Party() {};        

    vector<string> getNames() { return players; };

    void setNames (const vector<string> &new_players) { players=new_players; }

}

Я хочу написать функцию друга, которая будет показывать, если переменная P (также класс с (переменная «Имя» является частной) является участником партии.

void part_of_party (Party &party, P name)
{   
    bool found=false;

    for (int i=0; ( found==false && i<party.name.size() ); ++i)
    {
        if ( (party.name[i]).compare(name.getName()) == 0)
        {
            found==true;
        };
    }

    if (found==true) { /// }
    else { //// }
}

Компилятор не показывает никаких ошибок, но на экране не выводится сообщение (как и предполагалось).

Есть идеи? Спасибо.

1 Ответ

1 голос
/ 01 апреля 2020

Я предполагаю, что проблема в этом

found==true;

, который должен быть

found=true;

Обычно новички ошибаются, наоборот, они используют =, когда должны используйте ==, но вы использовали == (равенство), когда вы должны были использовать = (назначение). Ваш компилятор должен был предупредить вас об этом. Обратите внимание на предупреждения компилятора, это сэкономит вам много времени и разочарований.

Кроме того, не ошибка, но

if (party.name[i] == name.getName())

- более очевидный способ написания

if ( (party.name[i]).compare(name.getName()) == 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...