Я встретил следующий код в файле заголовка:
class Engine
{
public:
void SetState( int var, bool val );
{ SetStateBool( int var, bool val ); }
void SetState( int var, int val );
{ SetStateInt( int var, int val ); }
private:
virtual void SetStateBool(int var, bool val ) = 0;
virtual void SetStateInt(int var, int val ) = 0;
};
Для меня это означает, что либо класс Engine
, либо производный от него класс должен обеспечить реализацию этих чистых виртуальных функций. Но я не думал, что производные классы могут иметь доступ к тем частным функциям, чтобы их переопределить - так зачем делать их виртуальными?