sky*_*oor 7 c++ initialization-list
我有一个关于如何在初始化列表中捕获异常的问题.
例如,我们有一个派生自Bar的Foo类
class Foo {
public:
Foo(int i) {throw 0; }
}
class Bar : public Foo{
public:
Bar() : Foo(1) {}
}
Run Code Online (Sandbox Code Playgroud)
小智 10
我觉得语法是像这样(即使它是还好赶上这样的事情在主叫方.而且你会怎样做,一旦你抓住了吗?)
Bar::Bar()
try
: Foo(1)
{
}
catch( const SomeException &e )
{
}
Run Code Online (Sandbox Code Playgroud)
C++有一个这样做的机制,但它很少使用.它是函数try块:
Bar::Bar()
try
: Foo(1)
{
}
catch( Something )
{
}
Run Code Online (Sandbox Code Playgroud)
请参阅此经典文章,其中概述了为什么它只应用于转换异常(例如,异常类型FooException变为BarException).
| 归档时间: |
|
| 查看次数: |
3517 次 |
| 最近记录: |