Учитывайте:
// В 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;
}
Почему не ключевое слово static требуется в подписи в Vector2.cpp? Когда я пытаюсь это сделать, появляется ошибка:
static double Vector2::calcDir(double x, double y)
Мне это кажется несовместимым. Все остальные части сигнатуры метода необходимо повторить в файле .cpp (тип возвращаемого значения, имя метода (duh), имена и типы аргументов, константа). Мне не нравится не знать с первого взгляда, является ли метод статическим или нет (при рассмотрении реализации).
Is есть причина, по которой это не только не требуется, но и запрещено?