Вот небольшая тестовая программа:
#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) он компилируется отлично: консоль просто отображает "TEST IT!".
Насколько я знаю, статические методы-члены не должны вызываться на объекте instanced.
- Я не прав? Правильно ли этот код со стандартной точки зрения?
- Если это правильно, почему? Я не могу найти, почему это допустимо, или, может быть, это поможет использовать метод "статический или нет" в шаблонах?