Mar 06, 2009 12:52
Наткнулся на странную вещь в С++. Оказывается виртуальные функции не могут быть статическими. Т.е. нельзя написать вот так:
class A
{
public:
static virtual void StaticA() // Error: Virtual member functions cannot be static
{
printf("\nCalled A\n");
}
};
Кто-нибудь знает, почему так? В чем ограничение? А если у меня есть абстрактный класс, который определяет некоторый интерфейс и этот интерфейс требует наличия в каждом потомке некоторой статической функции? Как тогда быть?
рабочее