#include <iostream>
#include <string>
using namespace std;
class Base
{
public:
Base()
{
cout << "Base"<<endl;
}
~Base()
{
cout << "~Base"<<endl;
}
};
class Child: public Base
{
public:
Child()
{
cout << "Child"<<endl;
}
~Child()
{
cout << "~Child"<<endl;
}
};
int main()
{
try
{
Child cc;
}
catch(...)
{
}
return 0;
}
一般的な出力は次のようになります
Base
Child
~Child
~Base
しかし、 Base がコンストラクターである間に何かひどいまたは例外がキャッチされた場合、シーケンスが次のようになる可能性はありますか?
Base
~Base
Child
~Child
誰でもこれを説明するデモを書くことができますか? C++ は通常、コンストラクターで例外をスローしませんが、例外がスローされた場合、その出力につながる可能性はありますか?
助けてくれてありがとう。通常のコードでは、これが発生する可能性があるかどうかはわかりません。複雑な Base コンストラクターまたは何か間違っているか、通常の出力を変更する可能性はありますか? もしそうなら、誰か私に一例を教えてもらえますか?