动态绑定是否适用于C ++中的异常机制?

时间:2015-12-12 10:20:36

标签: c++

我有一个来自A的课程std::exception,还有另一个来自B的课程A。我已经覆盖了what()A类的B函数。我知道,如果我有像这样的阻挡

catch(A& ob){
  std::cout << ob.what();
} 

这将捕获从A类型和B类型派生的对象 A。但对于B个对象,它还会调用特定的what()函数 到A。为什么会这样?

1 个答案:

答案 0 :(得分:0)

这种情况发生的唯一方法是B::what()不覆盖基类中的函数,如果它的签名与基类中的函数不匹配,就会发生这种情况。

请确保您忘记在const中设置B,以匹配基类中的const char* what() const