以下の擬似コードを前提として、クラスBのサブオブジェクトaによってスローされた例外をキャッチし、このオブジェクトをBでプライベートに維持します。オブジェクトaはBでプライベートであるため、以下に示すcatch句は機能しません。この例外をどのようにキャッチできますか?
編集 私は、クラスB内にクラスAを埋め込むように擬似コードを変更しました。
class B
{
class A
{
public:
class Exception{};
A() throw(Exception) { ... } // A ctor throws an Exception class object
} a;
public:
B() { ... } // B ctor
};
int main()
{
try
{
B b;
}
catch( B::A::Exception& )
{
...
}
}