[英]Functions that cannot be overloaded in C++
如果其中任何一个是 static 成员 function 声明,则不能重载具有相同名称和名称参数类型列表的成员 function 声明。 例如,以下程序编译失败。
#include<iostream>
class Test {
static void fun(int i) {}
void fun(int i) {}
};
int main()
{
Test t;
getchar();
return 0;
}
我不明白为什么以下示例可以运行:
#include<iostream>
class Test {
public:
static void fun(double i) {
std::cout << i << "\n";
}
void fun(int i) {
std::cout << i;
}
};
int main()
{
Test t;
t.fun(5.5);
t.fun(4);
return 0;
}
第二个示例将运行,因为 function 中的参数类型不同,即第一个为 double,第二个为 int。 因此发生 function 过载
Function 重载仅在您有不同的参数集时才有效,在示例中它是 int 和 double。 更改参数数据类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.