Рассмотрим:
// В Vector2.h
class Vector2
{
public:
// returns the degrees in radians
static double calcDir(double x, double y);
}
// В Vector2.cpp
double Vector2::calcDir(double x, double y)
{
double rad = ...;
return rad;
}
Почему ключевое слово статический требуется в подписи в Vector2.cpp?Когда я пытаюсь это сделать, выдает ошибку:
static double Vector2::calcDir(double x, double y)
Мне кажется, что это противоречит.Все остальные части сигнатуры метода должны быть повторены в файле .cpp (возвращаемый тип, имя метода (duh), имена и типы аргументов, константность).Мне не нравится, если сразу не узнать, является ли метод статическим или нет (при рассмотрении реализации).
Есть ли причина, по которой это не только не требуется, но и запрещено?