我有一个这样的类结构:
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()
并且失败了 - 使用调试器单步执行我通常会在调用期间的某个时间点收到“未定义指令”异常。
我已经将这些方法简化为上面最简单的方法,重新测试,我仍然遇到同样的失败。因此,我猜测虚拟表有问题,但我不知道是什么问题。任何人都可以提供一些帮助吗?