首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手有关问题②,高手HELP///

2012-02-21 
新手问题②,高手HELP///#includeiostreamusingnamespacestdintadd(intx5,inty10){cout x+y endl

新手问题②,高手HELP///
#include   <iostream>
using   namespace   std   ;
int   add(int   x=5,int   y=10)
{
cout < <x+y < <endl;
return   1;

}

int     add(int     x=7,int     y=10,int   z=3)
{
cout < <x+y+z < <endl;
return   1;

}  

void   main()
{
int   a=1,b=2;


add(a,b);

}


//////////////////////////////////////////////////////////////////
  这个程序有错误....
  ..上面我想用重载函数.....~!~!
          (重载函数区别不同的调用不是看参数类型和参数的个数吗??)
  ............
        但上面的程序.我看上去..像是重载..但.我觉得..又是却省函数..

......参数个数不一样时..怎么判断是重载..还是却省...谢谢..

[解决办法]
int add(int x=5,int y=10)
-------------------------------------
int add(int x=7,int y=10,int z=3)

你这个函数重载中的两个函数都是采用默认参数(缺省值),为此当你调用它时就会出现问题,因为add(a,b);会产生歧异,因为你调用的可能是int add(int x=5,int y=10),也有可能是int add(int x=7,int y=10,int z=3)
在add(a,b);中--> 会表示为add(a,b);(两个参数)或者 add(a,b,10);(三个参数),因为你的第三个参数是默认的,为此调用时是可以省略掉!!
[解决办法]
重载函数好像不能带默认参数吧
[解决办法]
二义性太严重,这不明摆着跟编译器过不去嘛。。。

[解决办法]
重载2义了,
int add(int x=5,int y=10) 去掉,
只留下 int add(int x=7,int y=10,int z=3) 就可以了

热点排行