今天请教同事, 对于dynamic_cast 有了深入了解。
因为b1 已经在栈上已经初始化好了,所以b1并不一定和DrivedBaseClass相关
所以编译器直接报错!
void foo(BaseClass &b1)
{
...
b1 = drivedclassobjec;
...
};
int main()
{
BaseClass b1;
foo(b1);
BaseClass *pbaseclass = &b1;
DrivedBaseClass * pDirivedClass = dynamic_cast<DrivedBaseClass *>(pbaseclass);
}