c++ - *static* 关键字在成员方法声明中的位置

标签 c++

有什么区别吗

class C {
    static int func();
};

class C {
    int static func();
};

我正试图在其他人的代码库中删除关键字static。在我这样做之前,我想确保我理解第二个示例的含义。

[编辑] 删除 static 的原因:C 是一个没有成员变量且充满静态方法的“类”。我认为让“C”成为具有正常功能的命名空间而不是类更合适。

最佳答案

没有区别。函数声明上的 static 适用于该函数。
this 指针不会隐式传递给此函数,因此如果不显式将对象传递给函数,则无法访问此函数内部的非静态类成员。

首先要删除static,您应该知道并理解它以这种方式设计的目的。如果不考虑这一点,您必然会产生很大比例的代码味道。

关于c++ - *static* 关键字在成员方法声明中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16106838/

相关文章:

c++ - 释放数组的不同方法 - C++

c++ - 如何按顺序删除 vector 中的重复值?

c++ - boost::asio::async_write 没有完成它的任务

c++ - 无法在 Visual Studio 2013 中正确创建 C++ 项目

c++ - 抛出静态类型的理由?

c++ - 在 if-else block 外返回一个变量值

C++ 纯虚函数

c++ - 如何从成员函数创建仿函数?

c++ - constexpr 对象有什么方法可以引用/指向其他非静态 constexpr 对象吗?

c++ - 如何读取包含汉字的UTF-8编码文件并在控制台正确输出?