首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

throw基类对象引用的时候会把子类信息丢失,怎么处理

2012-10-12 
throw基类对象引用的时候会把子类信息丢失,怎么办?C/C++ codeChilldClass cBaseClass& bcthrow b捕获

throw基类对象引用的时候会把子类信息丢失,怎么办?

C/C++ code
ChilldClass c;BaseClass& b=c;throw b;

捕获到的是基类对象,子类的成员信息没有了.

[解决办法]
试了一下,看来应该是try catch机制造成的。catch到的对象(即使用引用类型)和throw的不是同一个对象。
这样的话,一定是系统内部重新生成了一个Base类型的对象。这个过程中子类信息肯定丢失了。
[解决办法]
探讨
C/C++ code

ChilldClass c;
BaseClass& b=c;
throw b;


捕获到的是基类对象,子类的成员信息没有了.

[解决办法]
catch (E const &e)
{
}

热点排行