今天请教同事, 对于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);
}
本文探讨了C++中dynamic_cast操作符的使用场景及其注意事项。通过一个具体的例子说明了当基类对象并非通过派生类初始化时,使用dynamic_cast进行类型转换可能会导致编译错误的情况。
1万+

被折叠的 条评论
为什么被折叠?



