这是一个小测试程序:
#include <iostream>
class Test
{
public:
static void DoCrash(){ std::cout<< "TEST IT!"<< std::endl; }
};
int main()
{
Test k;
k.DoCrash(); // calling a static method like a member method...
std::system("pause");
return 0;
}
在 VS2008 + SP1 (vc9) 上它编译得很好:控制台只显示“测试它!”。
据我所知,不应在实例对象上调用静态成员方法。
- 我错了吗?从标准的角度来看,这段代码是否正确?
- 如果它是正确的,那是为什么?我找不到为什么会被允许,或者可能是为了帮助在模板中使用“静态或非静态”方法?