我有一个在myclass.hpp中暴露静态函数的类
class MyClass {
public:
static std::string dosome();
};
好吧,在myclass.cpp中我应该写些什么: 这样:
std::string MyClass::dosome() {
...
}
或者这个:
static std::string MyClass::dosome() {
...
}
我想我不应该重复静态关键字......它是否正确?
答案 0 :(得分:10)
C ++编译器不允许这样做:
static std::string MyClass::dosome() {
...
}
因为在函数定义中使用static
意味着完全不同的东西 - static
链接(意味着该函数只能从同一个翻译单元调用)。
在成员函数声明中使用static
就足够了。
答案 1 :(得分:5)
不要重复static
关键字。这样做会导致错误。
答案 2 :(得分:1)
是即可。在类定义之外定义函数体时,不应使用static
关键字。