throw基类对象引用的时候会把子类信息丢失,怎么处理
throw基类对象引用的时候会把子类信息丢失,怎么办?C/C++ codeChilldClass cBaseClass& bcthrow b捕获
throw基类对象引用的时候会把子类信息丢失,怎么办?
C/C++ codeChilldClass c;BaseClass& b=c;throw b;
捕获到的是基类对象,子类的成员信息没有了.
[解决办法]试了一下,看来应该是try catch机制造成的。catch到的对象(即使用引用类型)和throw的不是同一个对象。
这样的话,一定是系统内部重新生成了一个Base类型的对象。这个过程中子类信息肯定丢失了。
[解决办法][解决办法]catch (E const &e)
{
}