当其他方法充当对象的修饰符时,IDE会自动完成静态方法,这很烦人。是否有(智能)方法将如下所示的代码编译成编译错误?
// Translate along X and Y axes, rotate pi/4 about axis X;
QQuaternion q;
q.fromAxisAndAngle({1,0,0}, 45.0); // whoops, fromAxisAndAngle is static!
// Later: test fails, "wait why is my quaternion still identity!?"
也许某种检查静态方法的返回值被忽略并且它是在对象ClassFoo().StaticMethod()
而不是ClassFoo::StaticMethod()
上调用的?
答案 0 :(得分:1)
您无法区分代码中的“在对象上调用”的情况,因为它只是一个语法设备。无论如何,通话结果都是一样的。但是给定的编译器可能支持对此进行警告诊断,如果是这样,可能会将该警告诊断转换为编译错误(例如,使用g ++,-pedantic-errors
,但我不知道g ++是否有对该电话的警告。)