为什么类的静态成员不能在c ++中重载?

时间:2016-11-23 10:54:58

标签: c++ oop static function-declaration

#include<iostream>
 class Test {
   static void fun() {}
   void fun() {} // compiler error
};

int main()
{
   getchar();
   return 0;
}

输出:

  

| 4 | error:'void Test :: fun()'无法重载|

1 个答案:

答案 0 :(得分:0)

标准不能直接禁止它。

引用C++14标准文件,第13.1章,“可重载声明”

  
      
  1. 某些函数声明无法重载

         
        
    • 不能仅在返回类型上有所不同的函数声明。

    •   
    • 如果其中任何一个是static成员函数声明,则不能重载具有相同名称和相同参数类型的成员函数声明。 [....]

    •   
  2.