0

我有这样的代码:

Class A{};

Class B : A {};

void foo()
{
  throw new B;
}

在这里,我们只能使用 catch(B *e) 来捕获异常。但是为什么我们不能使用 catch(A *e) 捕获它。这是因为继承中的私有访问类型吗?

4

1 回答 1

2

是的,这正是原因。

由于私有B继承,除了继承之外没有人知道。所以一个对象不被认为是一个对象,不能转换为.ABBAA

于 2013-05-15T09:47:32.350 回答