use*_*926 6 c++ syntax exception-handling exception throw
我是C++的新手,很抱歉提出非常愚蠢的问题,但我对C++的异常处理机制中的throw语句感到困惑.
class Except?我不理解那里的语法.
class A
{
public:
class Except{};
void foo() { throw Except(); }
};
int main()
{
A a;
try
{
a.foo();
}
catch(Except E)//exception handler
{
cout << "Catched exception" << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
它是构造函数吗?
是.
它是否正在创建一个Except类的实例?
是的,再次.这两个陈述都是正确的.
classname( arguments )
Run Code Online (Sandbox Code Playgroud)
哪个classname类的名称构造此类的实例,将任何可选项传递arguments给适当的类构造函数.
当然,构造函数是类方法,其名称与类名相同.这就是为什么你的两个问题都有相同的答案,"是的".
这会创建一个类的临时实例.通常classname用于声明表示此类的实例的变量,但此语法构造类的临时实例,该实例在表达式的末尾(通常)被销毁.如果所需要的只是将类的实例传递给另一个函数,则不需要单独的变量(抛出异常也属于此类别).
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |