temporäre Objekte - CTor, DTor, Exceptions
-
Angenommen, ich verwende eine Hilfsklasse
class CHelper { protected: SomeType * pData; public: explicit CHelper(SomeType & data) : pData(&data) { pData->AcquireRessource(); } ~CHelper() { pData->ReleaseRessource(); } };
und verwende sie folgendemaßen:
// extern Foo(CHelper const & helper); SomeType stval; Foo(CHelper(stval)); // <-- (1)
a) wird in (1) der CHelper::~CHelper erst aufgerufen, wenn Foo() ausgeführt wurde?
b) wenn SomeType::AcquireRessource eine Exception wirft, wird weder Foo() noch der CHelper::~CHelper ausgeführt?(Soweit ich weiß 2x ja, aber fragen schadet ja nicht
)
Dankeschön
-
peterchen schrieb:
(Soweit ich weiß 2x ja, aber fragen schadet ja nicht
)
Du hast recht.