(no subject)

Mar 06, 2009 12:52

Наткнулся на странную вещь в С++. Оказывается виртуальные функции не могут быть статическими. Т.е. нельзя написать вот так:

class A
{
public:
static virtual void StaticA() // Error: Virtual member functions cannot be static
{
printf("\nCalled A\n");
}
};

Кто-нибудь знает, почему так? В чем ограничение? А если у меня есть абстрактный класс, который определяет некоторый интерфейс и этот интерфейс требует наличия в каждом потомке некоторой статической функции? Как тогда быть?

рабочее

Previous post Next post
Up