引用的奇怪问题
我在radhat9下使用g++:
定义一个函数:
int init(int& a){。。。。};
....在另一个文件调用
int b=4;
init(b);
提示的出错是:init函数的原形是int init(int&)而不是int init(int)!!
真的很奇怪啊!
需要设置什么吗?这是怎么回事?
(本人已经有较好的编程能力及经验,所以不要考虑我写错代码)
问题点数:50、回复次数:13Top
1 楼mustang359(mustang)回复于 2005-01-14 22:49:47 得分 10
init函数的参数是引用类型(即:int类型的地址)
而不是值类型
调用应该是:init(&b)Top
2 楼winux0(随缘不变)回复于 2005-01-15 02:22:49 得分 20
天啊,楼上的太搞笑了吧??Top
3 楼tengulre(debian core developer)回复于 2005-01-15 15:11:23 得分 5
upTop
4 楼winux0(随缘不变)回复于 2005-01-16 03:46:49 得分 0
可能是引用了另一个文件里的函数定义
PS:int init(int& a){。。。。};(怎么有个分号呢?)Top
5 楼wangjinhu(金虎)回复于 2005-01-16 08:52:47 得分 5
引用了同名函数!Top
6 楼quil(晕)回复于 2005-01-16 09:21:10 得分 5
实参和行参的类型不一致?Top
7 楼UPCC(杂食动物)回复于 2005-01-16 11:29:36 得分 0
可能是引用了另一个文件里的函数定义
PS:int init(int& a){。。。。};(怎么有个分号呢?)
-------------------------------------------
事实上在我的程序里是没有分号的,但就算有分号也是对的,你不新可以看看这样的定义
int init(int& a){。。。。};;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
多少个分号都没有问题,一个分号只被当成一个空句子而已,这是对的
引用了同名函数!
------------------------------
不可能的,我是定义在一个只有三个函数的类里,而且是使用类的方式调用的
实参和行参的类型不一致?
---------------------------------
不可样,我不是刚编程的人了,写过高技能的系统也有几个了Top
8 楼winux0(随缘不变)回复于 2005-01-16 18:05:34 得分 0
我又没有说你分号有错
只是跟你所谓“有较好的编程能力及经验”不相称Top
9 楼winux0(随缘不变)回复于 2005-01-16 18:07:12 得分 0
三个函数应该没多少,你把它全贴出来让我看看怎么出个回事Top
10 楼UPCC(杂食动物)回复于 2005-01-16 18:28:01 得分 0
呵呵, winux0(随缘不变) ,不是和你顶嘴!
int init(int& a){。。。。};后面的分号是我在论坛的习惯的!要是我说的不好别往心理去Top
11 楼winux0(随缘不变)回复于 2005-01-16 21:26:27 得分 0
我又没和你顶嘴,只是想找到并解决问题罢了Top
12 楼suisuibianbian(SuperDiver)回复于 2005-01-16 22:00:50 得分 5
不明白,你换个函数名试试Top
13 楼UPCC(杂食动物)回复于 2005-01-17 09:04:30 得分 0
呵呵!谢谢各位兄弟们了!今天来公司重编译,通过!!可能那天时搞了别的东西了!Top




