我有这样的类结构:
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()
并且失败了 - 通过调试器,我通常会在调用期间的某个时刻获得“未定义的指令”异常。
我已经将方法缩小到上面最粗糙的骨头,经过重新测试,我仍然会遇到同样的失败。我猜测虚拟表有问题,但我无法弄清楚是什么。有人可以提供一些帮助吗?