读书人

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

发布时间: 2013-11-29 00:21:24 作者: rapoo

函数重载,引用参数的问题。
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个函数,编译器选择匹配函数时出现二义性了,必定编不过

读书人网 >C++

热点推荐