variável estática para cada classe derivada [duplicado]

Duplicata Possível:
Substituindo variáveis ​​estáticas ao criar subclasses

Eu tenho um conjunto de classes que são derivadas de uma classe base. Qualquer uma dessas classes derivadas declara a mesma variável estática. No entanto, é específico para cada uma das classes derivadas.

Considere o seguinte código.

class Base {
    // TODO: somehow declare a "virtual" static variable here?
    bool foo(int y) { 
        return x > y; // error: ‘x’ was not declared in this scope
    }
};

class A : public Base {
    static int x;
};

class B : public Base {
    static int x;
};

class C : public Base {
    static int x;
};

int A::x = 1;
int B::x = 3;
int C::x = 5;

int main() {}

Na minha classe base eu queria implementar alguma lógica, que requer o conhecimento do específico da classe derivadax. Qualquer uma das classes derivadas tem essa variável. Portanto, eu gostaria de poder me referir a essa variável no escopo da classe base.

Isso não seria um problema se fosse uma variável de membro simples. No entanto, semanticamente, a variável não é, de fato, uma propriedade da instância da classe derivada, mas sim da própria classe derivada. Portanto, deve ser uma variável estática.

ATUALIZAR Eu preciso da hierarquia de classes para preservar sua natureza polimórfica. Ou seja, todas as instâncias da minha classe derivada precisam ser membros de uma classe base comum.

Então, como posso obter essa variável do método da classe base?

questionAnswers(2)

yourAnswerToTheQuestion