Quando um programador tenta definir uma classe com o mesmo nome que já existe, é conhecido como “Redefinição da classe”. O programa pode se comportar inesperadamente como resultado disso, pois não ficará claro qual classe está sendo chamada, o que pode causar problemas de compilação.
Causas de redefinição de erros de classes
Para garantir que o software funcione sem falha, é crucial compreender o que desencadeia redefinições de classe e como resolvê -las.
1: A mesma classe definiu mais de uma vez
Quando uma classe é declarada mais de uma vez em um arquivo de origem ou arquivo de cabeçalho, ela deve ser redefinida. Várias definições da mesma classe resultam disso, dificultando o compilador para escolher qual definição usar. Ao tentar vincular arquivos de objeto, isso pode levar a problemas de compilação como “Símbolo duplicado” ou erros de ligação.
2: redefinir a mesma classe com comandos e valores semelhantes
Como os programadores normalmente redefinem a mesma classe com comandos e valores semelhantes, o redefinindo da classe O erro C ++ ocorre. Como resultado, o sistema não pode distinguir entre os dois scripts, levando à redefinição de variáveis em inúmeras linhas de código C ++.
3: Construindo uma aula em vários arquivos
Além disso, os desenvolvedores podem ter problemas de redefinição de classe ao criar uma aula em vários arquivos, o que pode resultar em alguns erros de atividades repetidas. Por exemplo, como o sistema reconhece suas modificações, o prompt de C ++ para o construtor de redefinição deve conter valores e tags distintos.
Vamos nos aprofundar na redefinição de erros de classe em um programa C ++, que é mostrado abaixo:
#incluir
usando namespace std;
classe Class1
público:
int dados;
void func ()
cout << "Hello from Func!" << endl;
;
classe Class1
público:
int dados;
void func ()
cout << "Hello again from Func!" << endl;
;
int main ()
Classe 1 OBJ;
obj.Dados = 50;
obj.Func ();
retornar 0;
No código acima, recebemos o erro 'Redefinição da classe Class1'. De acordo com esta mensagem de erro, estamos tentando redefinir a classe Classe 1 Usando o mesmo nome, a mesma coleção de membros de dados e o mesmo conjunto de funções de membro.
Saída
Para superar a redefinição da classe em C ++, você deve remover uma classe com o mesmo nome ou dar outro nome.
Código corrigido
Aqui, removemos a classe com o mesmo nome para obter a saída desejada no console.
#incluir
usando namespace std;
classe Class1
público:
int dados;
void func ()
cout << "Hello from Func!" << endl;
;
int main ()
Classe 1 OBJ;
obj.Dados = 50;
obj.Func ();
retornar 0;
A classe Classe 1 é definido pelo código, que também inclui a função de membro func e dados (). O programa cria um objeto do tipo Class1, define o valor de dados e chama o método func ().
Saída
Como corrigir o erro de 'redefinição de classe'
Para consertar o Redefinição da classe Em C ++, algumas abordagens podem ser usadas.
1: Identifique onde a classe está sendo redefinida
Encontrar as áreas em que a classe está sendo redefinida é a primeira etapa. Para fazer isso, procure o nome da classe no código do programa. O programador pode escolher como resolver o problema assim que a localização do problema for determinada. Renomear a classe com um sufixo ou prefixo distinto é uma abordagem do problema. Outra opção é combinar as duas classes em uma única classe que possui um único nome e incorpora todos os recursos das duas classes originais.
2: Faça alterações no código do programa
O programador deve alterar o código do programa para aplicar o remédio. Isso pode implicar renomear a classe, atualizar qualquer referência ao programa à classe e substituindo qualquer código exclusivo da classe original. O software deve ser testado assim que as modificações forem feitas para garantir que funcione corretamente.
3: Use guardas de cabeçalho
Usar guardas de cabeçalho é outro método preferido para impedir que os arquivos de cabeçalho sejam incluídos mais de uma vez em um único arquivo ou aplicativo. Os guardas de cabeçalho são diretivas de pré -processador que garantem que o arquivo de cabeçalho esteja incluído apenas uma vez, por mais frequentemente que apareça no código -fonte.
4: Use a palavra -chave externa
Outra estratégia é declarar a classe em um arquivo de cabeçalho e defini -lo em um único arquivo de origem usando a palavra -chave externa. Como resultado, a redefinição de erros é evitada porque há apenas uma definição da classe.
5: Usando namespaces
Usar namespaces é outra solução para o redefinindo da classe erro em c++. O uso de namespaces permite que os programadores unificem classes e métodos semelhantes em um único nome. Ao fazer isso, os conflitos de nome são reduzidos e a classe certa é chamada. O programador pode evitar conflitos de nome declarando cada classe em um espaço de nome exclusivo.
Conclusão
O Redefinição de uma classe Na programação C ++ é um erro frequente que pode ser facilmente evitado pela identificação da classe, fazendo alterações no código, utilizando guardas de cabeçalho, palavra -chave externa e namespaces. Essas abordagens ajudam a garantir que a classe tenha uma única definição, evitando problemas de compilação e vinculação.