私はこのようなクラス構造を持っています:
class A {
public:
virtual int a1() = 0;
int a2() {
return a3();
}
protected:
int a3() {
return a1();
}
};
class B : public A {
public:
virtual int a1() {
return 1;
}
};
int main() {
B b_obj;
int value1 = b_obj.a2(); // This fails.
}
KPIT GNU RX ツールチェーン (GCC ポート) を使用して Renesas RX63N プロセッサ用にビルドしています。コメントされているように、私はテストB::a2()
しましたが、これは失敗しました-デバッガーをステップスルーすると、通常、呼び出し中のある時点で「未定義の命令」例外が発生します。
メソッドを上記の最小限の骨まで減らし、再テストしましたが、それでも同じ失敗が発生します。したがって、仮想テーブルに何か問題があると推測していますが、何が原因かわかりません。誰でも助けを提供できますか?