我尝试着
void function(int y,int w)
{
printf("int function");
}
void function(float y,float w)
{
printf("float function");
}
int main()
{
function(1.2,2.2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误错误,如..
error C2668: 'function' : ambiguous call to overloaded function
Run Code Online (Sandbox Code Playgroud)
当我尝试调用function(1.2,2)或function(1,2.2)打印为" int函数 "时
请说清楚什么时候function(float y,float w)打电话?
我正在重载该函数add(),但是当我使用float数据类型时它显示错误.但是,当我将其更改为时double,它的工作正常.为什么会float导致错误?
代码是:
#include <iostream>
using namespace std;
class students{
private:
int i;
float f;
public:
void add(int b){
i=b;
cout << "First Int: " << i;
}
void add(float c){
f=c;
cout << "Second Int: " << f;
}
};
int main(){
students obj;
obj.add(9);
obj.add(5.5);
}
Run Code Online (Sandbox Code Playgroud)
错误:
In function 'int main()':
[Error] call of overloaded 'add(double)' is ambiguous
[Note] candidates are:
[Note] void students::add(int)
[Note] void students::add(float)
Run Code Online (Sandbox Code Playgroud) 编译以下代码时:
#include <iostream>
using namespace std;
void print(int i){
cout << i << endl;
}
void print(float i){
cout << i << endl;
}
int main(){
print(5);
print(5.5)
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
调用重载'print(double)'是不明确的.
但是,如果我改变了
void print(float i){
Run Code Online (Sandbox Code Playgroud)
至
void print(double i){
Run Code Online (Sandbox Code Playgroud)
代码编译.这是为什么?