【问题标题】:Why static member of class can not be overloaded in c++? [duplicate]为什么类的静态成员不能在 C++ 中重载? [复制]
【发布时间】:2016-11-23 10:54:57
【问题描述】:
#include<iostream>
 class Test {
   static void fun() {}
   void fun() {} // compiler error
};

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

输出:

|4|错误:‘void Test::fun()’不能重载|

【问题讨论】:

  • 所以,从删除 C 标签开始...
  • 为您自己的 C++ 编译器提供此功能。我们可以称之为替代方案。

标签: c++ oop static function-declaration


【解决方案1】:

这是不可能的,因为标准直接禁止。

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

  1. 某些函数声明不能​​重载

    • 仅返回类型不同的函数声明不能​​被重载。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多