Как я могу получить конкретный член из класса с помощью метода get внутри функции, которая использует итератор внутри цикла? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь создать функцию, которая возвращает класс (CTaxGroup), принимая в качестве параметра TaxGroupId.

Функция будет перебирать вектор с помощью итератора.

int m_TaxGroupId;

CTaxGroup CTaxGroupVector::FetchTaxGroup(int TaxGroupId)
{
    CTaxGroup l_TaxGroup;
    std::vector<CTaxGroup>::iterator l_iterator =m_TaxGroupVector.begin();
    for(l_iterator; l_iterator != m_TaxGroupVector.end(); l_iterator++)
    {
        int l_TaxGroupId = *l_iterator->GetTaxGroupId();
        if(l_TaxGroupId == TaxGroupId)
        {
            l_TaxGroup = *l_iterator;
        }
    }
    return l_TaxGroup;
}

std::vector<CTaxGroup> CTaxGroupVector::GetTaxGroupVector()
{
    return m_TaxGroupVector;
}

В строке 7 я получаю сообщение об ошибке из своей IDE (RAD Studio XE4), в котором говорится: «E2062 Invalid indirection».

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

Я ожидаю, что строка 7 вернет мне целое число.

1 Ответ

0 голосов
/ 26 июня 2019

Без тестирования, поскольку вы не предоставляете скомпилируемую программу, вполне вероятно, что вы должны поставить круглые скобки вокруг начальной разыменования, (*l_iterator)->GetTaxGroupId(), чтобы компилятор знал, что вы пытаетесь получить доступ к члену CTaxGroup , не член итератора.

...