Использование статического ключевого слова в C ++ - PullRequest
4 голосов
/ 24 января 2011

У меня есть класс, представляющий статическую функцию в myclass.hpp

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

Ну, в myclass.cpp, что мне написать:1007 *

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

Наверное, мне не следует повторять ключевое слово static ... это правильно?

Ответы [ 3 ]

10 голосов
/ 24 января 2011

C ++ компилятор не допустит этого:

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

, поскольку наличие static в определении функции означает нечто совершенно иное - static связь (то есть функция может быть вызвана только из одной и той же единицы перевода)).

Достаточно иметь static в объявлении функции-члена.

5 голосов
/ 24 января 2011

Не повторять ключевое слово static.Это приведет к ошибке.

1 голос
/ 24 января 2011

Да . Ключевое слово static не должно использоваться при определении тела функции вне определения класса.

...