メソッドの 1 つで、「シンボル '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
}
}
}
「if」スコープ外で PredefinedAtom の型を宣言すると、コードがコンパイル/実行されます。ただし、「if」内で型を宣言しようとすると、コンパイラは「'pa' シンボルを解決できません」というエラーを発行します。「findAtomByLexCode」は、「PredefinedAtom*」または NULL へのポインターを返します。