Estava eu, mexendo com heranças e tal e quando vou compilar o meu código, aparece esse erro: "Redefinition of 'ClasseX'". Achei estranho, porque não declarei duas vezes a classe, como a maioria da Internet que achei, patéticamente fizeram de fazer um definição de classe no arquivo h e outra no arquivo cpp.
No meu caso, o que ocorreu foi que ao incluir no meu código, uma classe derivada de ClasseX e outra classe também derivada de ClasseX, o compilador incluiu duas vezes a ClasseX e aí é que deu o erro de redefinição.
A solução para isso foi usar alguns preprocessors, como no código abaixo:
#ifndef __meuprojeto__MinhaClasse__
#define __meuprojeto__MinhaClasse__
class MinhaClasse{
};
#endif
O que significa esse código? A primeira linha verificamos se a definição __meuprojeto__MinhaClasse__ NÃO está definida. Se ela não estiver, você cria a definição e cria a definição da classe. Depois encerra com um #endif.
Problema resolvido! Se por acaso, na hora de compilar, tentar colocar uma classe pela segunda vez, o preprocessor vai evitar que haja uma redefinição de classe e não haverá mais erros.
Nenhum comentário:
Postar um comentário