在我下面的代码中,我想测试如果我有一个包含另一个构造函数抛出异常的对象的对象会发生什么。但是下面的代码什么也没做。控制台上根本没有打印任何东西。
如果在try块中使用注释的代码,则可以正常显示。我还尝试了以下方法:
class A
{
public:
A()
{
cout << "in A constructor" << endl;
throw "error creating A";
}
~A()
{
cout << "destructing A" << endl;
}
};
class C
{
public:
C()
{
cout <<"in C constructor" << endl;
}
~C()
{
cout << "in C destructor " << endl;
}
};
class B
{
public:
C c;
A a;
B(A a_, C c_): a(a_), c(c_){}
B(){}
};
int main()
{
try{
B b(A, C);
//B b;
}
catch(char const* s)
{
cout <<"catching" << endl;
}
}
如果在try块中使用注释的代码,则可以正常显示。我还尝试了以下方法:
B b(A(), C());
依然没有任何消息。