⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_34230.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:34230 发表者:小抱枕 发表日期:2003-03-27 20:38:27
<br>主题:为什么要调用A中的f()
<br>内容:#include&lt;iostream.h&gt;<BR>class A<BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;A(){}<BR>&nbsp;&nbsp;&nbsp;&nbsp;virtual void f(){cout&lt;&lt;"A::f() called.\n";}<BR>};<BR>class B:public A<BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;B(){f();}<BR>&nbsp;&nbsp;&nbsp;&nbsp;void g(){f();}<BR>};<BR>class C:public B<BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;C(){f();}<BR>&nbsp;&nbsp;&nbsp;&nbsp;virtual void f(){cout&lt;&lt;"C::f() called.\n";}<BR>};<BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;C c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c.g();<BR>}<BR><BR><BR><BR>C类有构造函数f()为什么结果还是要调用A中的f()<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:擎天柱 回复日期:2003-03-27 22:09:32
<br>内容:因为C类的构造函数会调用B类的构造函数,在B类中没有重载f函数,所以调用A类中的f函数。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小抱枕 回复日期:2003-03-27 23:31:28
<br>内容:C类的构造函数为什么会调用B类的构造函数呢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:sdfsd 回复日期:2003-03-28 09:05:26
<br>内容:构造一个派生类时,得首先构造它的基类:<BR>1、C-B-A,首先构造A,A的构造函数为空,没有显示。<BR>2、再构造B,B的构造函数是执行f(),由于B中没有重载f(),执行A中的f()。<BR>3、构造C,C中覆盖了f(),调用C中的f()。<BR>4、C继承了B中的g(),g()执行f(),由于C中重载了f()函数,执行C中f()。
<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 + -