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

📄 subject_22021.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:22021 发表者:zhang dragon 发表日期:2002-11-21 22:19:17
<br>主题:奇怪的错误!!求助,急!!
<br>内容:代码:<BR>class A;<BR><BR>class B<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;A* Create()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new A;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>};<BR><BR>class A<BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;A(){}<BR>};<BR><BR>void main()<BR>{<BR>}<BR>编译结果:<BR>error C2512: 'A' : no appropriate default constructor available<BR>环境:<BR>VC++ 6.0<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:金鱼王 回复日期:2002-11-21 22:46:24
<br>内容:先生成一个A,再生成B<BR>class A<BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;A(){}<BR>};<BR><BR>class B<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;A* Create()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new A;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<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>
回复者:zhang dragon 回复日期:2002-11-21 23:00:31
<br>内容:首先谢谢你的回答,实在抱歉,我问题描述的不是很清楚,更正如下:<BR>代码:<BR>class A;<BR><BR>class B<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;A* Create()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new A(*this);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>};<BR><BR>class A<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;B t;<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;A(const B&amp; t){}<BR>};<BR><BR>void main()<BR>{<BR>}<BR><BR>编译结果:<BR>error C2512: 'A' : no appropriate default constructor available<BR>环境:<BR>VC++ 6.0<BR><BR>代码中,类A要引用类B,类B又要引用类A,因此你给出的解决方法无法实施。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:VC狂人 回复日期:2002-11-21 23:47:39
<br>内容:class B;<BR>class A<BR>{<BR>//&nbsp;&nbsp; B t;//删除,要不然逻辑有问题<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;A(const B&amp; t){}<BR><BR>};<BR>class B<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;A* Create()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new A(*this);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<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>
回复者:zhang dragon 回复日期:2002-11-22 00:07:54
<br>内容:如果我不得不在类A中保存类B的元素,调用类B的函数,怎么办?<BR>代码如下(编译无法通过):<BR>class B;<BR><BR>class A<BR>{<BR>&nbsp;&nbsp; const B&amp; _t;//&amp;Eacute;&amp;frac34;&amp;sup3;&amp;yacute;,&amp;Ograve;&amp;ordf;&amp;sup2;&amp;raquo;&amp;Egrave;&amp;raquo;&amp;Acirc;&amp;szlig;&amp;frac14;&amp;shy;&amp;Oacute;&amp;ETH;&amp;Icirc;&amp;Ecirc;&amp;Igrave;&amp;acirc;<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;A(const B&amp; t):_t(t){}<BR>&nbsp;&nbsp;&nbsp;&nbsp;void fn()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_t.fn();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>};<BR><BR>class B<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;A* Create()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new A(*this);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;void fn()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>};<BR>void main()<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-11-22 00:23:45
<br>内容:保存B没有什么意义.<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>
回复者:zhang dragon 回复日期:2002-11-22 00:35:40
<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>
<font color=red>答案被接受</font><br>回复者:金鱼王 回复日期:2002-11-22 09:16:52
<br>内容:因为使用"预引用"class A;它将告诉编译器,类A将在后面定义。使用了预引用后,就可以声明未定义的类的友元、指针和引用。但是不可以使用那些需要知道预引用的类的定义细节的语句,人声明该类的一个实例或者任何对该类成员的引用。请参考《标准C++宝典》第303页。<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-11-22 12:17:58
<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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -