与C语言比,C++提供四种新式转型动作:
1.const_cast<T> (expression)
2.dynamic_cast<T> (expression)
typedef std::vector<std::tr1::shared_ptr<Window> > VPW;
VPW winPtrs;
...
for(VPW::iterator iter = winPtrs.begin();iter!=winPtrs.end();iter++)
{
}
我们应该这样做:
typedef std::vector<std::tr1::shared_ptr<SpecialWindow> > VPSW;
VPSW winPtrs;
...
for(VPSW::iterator iter = winPtrs.begin();iter!=winPtrs.end();iter++)
{
}
第二、对于上面的问题,我们可以采用虚函数实现
我们这里强调的是尽量不要使用转型
3.reinterpret_cast<T> (expression)
4.static_cast<T> (expression)
本文深入解析C++中四种转型操作:const_cast、dynamic_cast、reinterpret_cast及static_cast的特点与应用场景。通过实例展示dynamic_cast如何安全地进行向下转型,并讨论了在实际编程中应尽量避免使用这些转型的原因。
2093

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



