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

函数重载,引用参数的有关问题

2013-11-29 
函数重载,引用参数的问题。void out(int a){couta+1endl}void out(int &a){coutaendl}编译时通

函数重载,引用参数的问题。
void out(int a)
{
cout<<a+1<<endl;;
}

void out(int &a)
{
cout<<a<<endl;
}

编译时通过了,就是说编译器认为是函数重载。
但是用什么语句才能调用第二个函数?
[解决办法]

#include <iostream>
#include <stdio.h>
using namespace std;


void out(int &a)
{
cout<<a<<endl;
}

void out(int a)
{
cout<<a+1<<endl;;
}

int main(int argc, char *argv[])
{
int n =3;
out(n);

return 0;
}


编译通不过
[解决办法]
怎么会编译通过?
[解决办法]
我只知道 
    out(3);
会调用第一个。。。
[解决办法]
引用:
#include <iostream>
#include <stdio.h>
using namespace std;


void out(int &a)
{
cout<<a<<endl;
}

void out(int a)
{
cout<<a+1<<endl;;
}

int main(int argc, char *argv[])
{
int n =3;
        out(n);   //不过

return 0;
}


编译通不过

int main(int argc, char *argv[])
{
int n =3;
        out(n);   //不过
out(3);   //这样可以过

return 0;
}
[解决办法]
如果同一个实参可以匹配2个函数,编译器选择匹配函数时出现二义性了,必定编不过

热点排行