繁体   English   中英

C++中不能重载的函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM