📄 subject_33368.htm
字号:
<p>
序号:33368 发表者:Rikcuo Akira 发表日期:2003-03-19 18:00:36
<br>主题:static_cast與dynamic_cast
<br>内容:static_cast與dynamic_cast有何不同??各用在那方面??
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:dr0 回复日期:2003-03-19 20:00:58
<br>内容:static_cast 是静态转换,只能用于类型兼容的转换(由宽向窄), 无RUNTIME损耗<BR>dynamic_cast 是动态转换,主要用于base向derived的转换,就是说对象本身<BR>包含了自己的type information,这个type information在转换过程中不会损失.<BR>唉, c++ ,叫我如何不头痛?<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:dr0 回复日期:2003-03-19 20:04:20
<br>内容:上面的base其实是个derived (base: pointer to base class object, derived: pointer to derived class object),但是被某处转化成了derived, 现在想重新使用derived的<BR>方法或者属性,就用dynamic_cast来得到。<BR>这是ANSI c++ 的特征,MFC有自己的体系。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:dr0 回复日期:2003-03-19 20:07:20
<br>内容:B.S. 在那本TCPL里讲: c 的 () operator 在c++里基本是,static_cast, const_cast, <BR>reinterpret_cast的mixture. 你看看那本<BR>*the c++ programming language* , 里面有讲,还是要写一些test来验证为妙.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:dr0 回复日期:2003-03-19 20:08:53
<br>内容:Microsoft的开发工具附带的代码用static_cast/dynamic_cast的比较少见,只有<BR>ATL的source里有分布.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -