在C ++中使用static关键字

时间:2011-01-24 11:09:30

标签: c++ static-methods

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

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

好吧,在myclass.cpp中我应该写些什么: 这样:

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

或者这个:

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

我想我不应该重复静态关键字......它是否正确?

3 个答案:

答案 0 :(得分:10)

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

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

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

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

答案 1 :(得分:5)

不要重复static关键字。这样做会导致错误。

答案 2 :(得分:1)

即可。在类定义之外定义函数体时,不应使用static关键字。