#include <iostream> #include <stdexcept> using namespace std; class Member1 { public: Member1( int m ) { cout << "Member1::Member1" << endl; } ~Member1() { cout << "Member1::~Member1" << endl; } }; class Member2 { public: Member2( int m ) { cout << "Member2::Member2" << endl; } ~Member2() { cout << "Member2::~Member2" << endl; } }; class Member3 { public: Member3( int m ) { cout << "Member3::Member3" << endl; } ~Member3() { cout << "Member3::~Member3" << endl; } }; class Base { public: Base(): m_2( getM2() ) , m_1(getM1()) ,m_3( getM3() ) { cout << "Base::Base" << endl; } ~Base() { cout << "Base::~Base" << endl; } int getM1() const { return 1; } int getM2() const { throw runtime_error("error"); } int getM3() const { return 3; } private: Member1 m_1; Member2 m_2; Member3 m_3; }; int main(int argc, char const* argv[]) { try { Base base; } catch( runtime_error & e ) { cout << e.what() << endl; } return 0; }
不解釋,看結果:
Member1::Member1 Member1::~Member1 error
恩,問題涌出了吧。。低調低調,繼續研究。。
{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"typ
{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragr
{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null