考虑:
//在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?当我尝试这个,它会产生一个错误:
static double Vector2::calcDir(double x,double y)
这似乎与我不一致.需要在.cpp文件(返回类型,方法名称(duh),args的名称和类型,const-ness)中重复方法签名的所有其他部分.我不喜欢不知道一个方法是否是静态的(当看到实现时).
有没有理由这不但不是必需的,而且是禁止的?