subject_19563.htm
来自「一些关于vc的问答」· HTM 代码 · 共 24 行
HTM
24 行
<p>
序号:19563 发表者:VisualKid 发表日期:2002-10-29 20:00:35
<br>主题:虚函数一问
<br>内容:深入浅出MFC中第69页的Object slicing与虚函数:<BR><BR>#0035 cout<<"#1 testing"<<endl;<BR>#0036 ((CDocument *)(&mydoc))->fun();<BR>为什么输出那个结果。<BR><BR>已及<BR>#0042 ((CDocument)mydoc).func();<BR>
<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>回复者:凯凯 回复日期:2002-10-29 21:27:53
<br>内容:和我前面回你的那个贴子一样。<BR>多态只有在通过引用或是指针调用时才会发生。<BR><BR>#0035<BR>#0036<BR>虽然最终转换的结果是通过一个CDocment的指针来调用func(),但是指针指向的对象是一个CMyDoc对象,所以输出的结果肯定和#0032,#0033的结果一样。<BR><BR>#0042<BR>不是通过指针,而是将一个CMyDoc对象强制转换为CDocment对象,子类对象转为父类对象就会发生“切片”,那些原本属于子类而不属于父类的信息被切除,且不可逆。所以这时调用的是CDocment类的Serialize函数。<BR><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>
回复者:VisualKid 回复日期:2002-10-30 14:10:34
<br>内容:谢谢了,凯凯!!<BR><BR>本来想给一个 好,<BR>看了你的答案,太好了,激动了一下:),一不小心按了其他,<BR>不好意思了。<BR><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>
回复者:凯凯 回复日期:2002-10-30 14:13:44
<br>内容:有的是机会!
<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 + =
减小字号Ctrl + -
显示快捷键?