c++ - 将 C++ 成员函数声明为静态常量会产生错误

标签 c++ access-modifiers

我有以下类接口(interface):

class Test
{
public: 
    Test();
    static void fun() const;

private:
    int x;
    static int i;
};

Test.cpp 包含 fun() 的实现:

void Test::fun() const
{
   cout<<"hello";
}

它给我错误... 静态成员函数不允许修饰符

错误是什么意思?我想知道为什么我无法创建既是静态函数又是 const 函数的原因。

最佳答案

void fun() const;

意味着 fun 可以应用于 const 对象(以及非 const)。 如果没有 const 修饰符,它只能应用于非 const 对象。

根据定义,静态函数不需要对象。

关于c++ - 将 C++ 成员函数声明为静态常量会产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251075/

相关文章:

c++ - 在 OpenCV 中,有没有比 cv::merge 和 cv::split 更有效地组合/分离图像 channel 的方法?

c++ - 读取文件.txt C++

java - Java 中的构造函数是否有访问修饰符继承?

c# - 如何使聚合根方法仅可用于领域事件,而无其他。

java - 当默认类中有公共(public)方法时,为什么编译器不会给出错误

c++ - 如何禁止在 C++ 2011 中调用右值对象的 const 成员函数?

c++ - 使用dll源代码C++调试dll文件

c++ - 在 C++ 中添加静态库时的意外行为

java - 如何限制我的方法可见性

java - 更改 Java 中重写方法的访问修饰符?