throw的问题
今天没事翻书玩,看到异常那一块!
class a_class
{
....
};
try
{
if(....)
{
a_class a;//局部对象
throw a; //抛出一个局部对象,
}
}
catch(a_class& )//不理解的是:这个地方竟然是一个指向据对对象的引用!!! 咋回事???引用能用在局部对象上?
{
.....
}
书上大致就是以上这样写的!
注:我记得return是不能返回一个局部对象的引用!
[解决办法]
C++使用throw关键字来产生异常,try关键字用来检测的程序块,catch关键字用来填写异常处理的代码。异常可以由一个确定类或派生类的对象产生。C++能释放堆栈,并可清除堆栈中所有的对象。
[解决办法]
抛出的对象是局部对象的一个拷贝。