📄 subject_25465.htm
字号:
<p>
序号:25465 发表者:邪 发表日期:2002-12-22 22:36:23
<br>主题:求助很菜的编译问题?
<br>内容:程序如下:<BR>#include <iostream.h><BR>class a{<BR>private:<BR>int i;<BR>public:<BR>a();<BR>a(int a=0)//为什么这出错???<BR>{ i=a;}<BR>};<BR>void main()<BR>{ a a;<BR>}<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-12-22 22:50:59
<br>内容:{ i=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>
回复者:啊志 回复日期:2002-12-23 00:18:56
<br>内容:构造函数a();和a(int a=0)导致函数重载失败;<BR><BR>当你在main用 a 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>
回复者:邪 回复日期:2002-12-23 11:38:22
<br>内容:为什么这样改动后就无错?<BR>a(int a)<BR>{i=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>
回复者:JX 回复日期:2002-12-23 11:59:33
<br>内容:你用的是inline contractor, 当然不能在后面加一个";".
<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-12-24 11:29:04
<br>内容:还是不明白啊,?<BR>为什么不能给a(int a=0)参数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>
回复者:萧七 回复日期:2002-12-24 11:39:45
<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-12-24 11:52:32
<br>内容:a(int a=0){ i=a;}<BR>你那样定义的构造函数根本没有意义,因为带参数的构造函数是为了帮助程序初始化对象,所传递的参数是变参,但是你现在初始化为0,根本就是错的
<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) 回复日期:2002-12-24 14:34:39
<br>内容: 你实际上是重载了两个构造函数。而是a(int a=0)带缺省参数的函数。带缺省参数的函数调用时可以省略参数。如声明函数如下:void Fun(int x,int y,int z=0)。调用时可以这样:Fun(1,2);而你上面的函数是a()和a(int a=0);在main()中a a;编译器不能确定是调用哪个构造函数,因为两个函数的调用形式相同。所以就出错了。你换一种方式就可以了。其实“晚风也渡”说得对,你定义的函数没意义。<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 + -