c++中不能重载的函数



具有相同名称和名称parameter-type-list的成员函数声明,如果其中任何一个是静态成员函数声明,则不能重载。例如,下面的程序在编译时失败:

#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;
}

第二个示例将运行,因为两个函数中的参数类型不同,即第一个是double,第二个是int。函数重载发生了

函数重载只有在你有不同的参数集时才有效,在这个例子中,它是int和double。修改参数数据类型

最新更新