我正在尝试编写一个函数,它接受两个数字并打印出它们的总和.
#include <iostream>
using namespace std;
int plus(int, int);
int main () {
int a, b, result;
cout << "2 numbrs";
cin>>a>>b;
result = plus(a,b);
cout << result;
return 0;
}
int plus(int a,int b) {
int sum;
sum = a+b;
return sum;
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
use of `plus' is ambiguous
Run Code Online (Sandbox Code Playgroud)
这是我的第一个C++程序,事实上我正在盲目地发现错误.
yiz*_*lez 20
要么这样做
result = ::plus(a,b);
Run Code Online (Sandbox Code Playgroud)
或者重命名该功能.这是一个很好的教训,为什么using namespace std不被认为是良好的做法.
Nul*_*ull 14
目前已经是一个函数对象std 命名叫plus.因为using namespace std;这std::plus被放在全局命名空间中,这也是你plus()的名字.当您尝试调用时plus(),编译器无法判断您是在引用std::plus还是您的,plus()因为它们都在全局命名空间中.
您有以下选择:
using namespace std;(然后您需要限定std命名空间中的其他函数- 例如std::cout).plus()放在自己的命名空间(比方说mine),并使用它来调用它mine::plus(a, b).::plus()按照建议调用您的函数(假设您没有将它放在自己的命名空间中).| 归档时间: |
|
| 查看次数: |
682 次 |
| 最近记录: |