eclipse — не удалось разрешить символ

Я сталкивался с этой ошибкой: «Символ« pa »не может быть разрешен» одним из моих методов.
Код:

 PredefinedAtom* PredefinedSymbolTableCollection::findAtomByLexCode(u_int lex_code) {
// PredefinedAtom* pa;  // <== ACCEPTED
for(u_int i = 0; i < pst.size(); i++) {
if((PredefinedAtom* pa = pst[i]->findAtomByLexCode(i)) != NULL){// <== BAD
// some code
}
}
}

Если я объявляю тип PredefinedAtom вне области действия if, код компилируется / запускается. Однако, если я попытаюсь объявить тип внутри ‘if’, компилятор выдаст ошибку ‘Cannot решить’ pa ‘symbol’. ‘findAtomByLexCode’ либо возвращает указатель на ‘PredefinedAtom *’, либо NULL.

0

Решение

Вы можете определить переменную в состоянии if заявление, но вы не можете определить его в выражении. Вам нужно написать это так:

if (PredefinedAtom* pa = pst[i]->findAtomByLexCode(i)) {
...
}

Значение pa преобразуется в bool определить, какая ветвь берется.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]