Можно ли получить доступ к элементу Public Class из-за пределов main (), где он создан? - PullRequest
0 голосов
/ 11 мая 2019

Я новичок в c ++, и сегодня я пытался сделать доступ открытым членом класса вне функции main (), точнее в другой функции.

Я пытался создать указатель на этот класс, но яне в состоянии получить доступ к своим членам.Я собираюсь показать пример с несколькими строками кода. Любая помощь будет признательна.

Class City
{
private:
    string name;

public:
    string getName()
    {
        return name; 
    }
};

bool isCity(string input)
{
    if(input== ???) { return true; } 
    return false; 
}

* Проблема: как получить доступ к общедоступному члену getName () из класса, который я создаю в main ()на вопросительных знаках

int main()
{

    string input;
    City test;

    cin >> input;

    isCity(input);

    cin.get();
}

Указатель на класс не работает, проход ссылок также не работает.

1 Ответ

2 голосов
/ 11 мая 2019

Самый простой способ - создать часть класса isCity и вызвать его как метод объекта test.isCity(input);

Класс должен быть следующим:

Class City
{
private:
    std::string name;

public:
    std::string getName() const
    {
        return name; 
    }

    bool isCity(const std::string& input) const
    {
        return input.compare(name) == 0
    }
};

В противном случае вы могли бы иметь свободную функцию (вне класса), но подпись должна обеспечивать объект класса city следующим образом:

bool isCity(const City& c, const std::string& input)
{
    return input.compare(c.GetName()) == 0;
}

Что означает, что вы должны вызывать функцию следующим образом:

isCity(test, input);
...