c++ - C++中static关键字的使用

标签 c++ static-methods

我在 myclass.hpp 中有一个暴露静态函数的类

class MyClass {
public:
   static std::string dosome();
};

那么,在 myclass.cpp 中我应该写什么: 这个:

std::string MyClass::dosome() {
   ...
}

或者这个:

static std::string MyClass::dosome() {
   ...
}

我想我不应该重复 static 关键字……对吗?

最佳答案

C++ 编译器不允许这样做:

static std::string MyClass::dosome() {
   ...
}

因为函数定义中有 static 意味着完全不同的东西 - static 链接(意味着函数只能从同一个翻译单元调用)。

在成员函数声明中有 static 就足够了。

关于c++ - C++中static关键字的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4781264/

相关文章:

c++ - LLVM/Clang 是否支持弱链接的 'weak' 属性?

java - private static ClassName ClassInstanceVariableName=null;.....这是什么?

android - 静态方法中的 findViewById

c# - 静态方法作为契约(Contract)的一部分

c++ - 聚合初始化期间无法访问继承的结构成员

C++-错误C2144语法错误: 'int' should be preceded by ';'

c++ - 用于检测模板特化的模板元函数

c++ - 读取文本文件并将其内容存储在 c++ 中的 unoredered_map 中

python - 如何在定义全局方法时从继承类中动态选择子类

java - 使用静态私有(private)方法真的比实例私有(private)方法更快/更好吗?