Compartilhar via


Erros do compilador C2500 a C2599

Os artigos nesta seção da documentação explicam um subconjunto das mensagens de erro geradas pelo compilador.

Importante

Os compiladores e ferramentas de build do Visual Studio podem relatar muitos tipos de erros e avisos. Depois que um erro ou aviso for encontrado, as ferramentas de build poderão fazer suposições sobre a intenção do código e tentar continuar, para que mais problemas possam ser relatados ao mesmo tempo. Se as ferramentas fizerem a suposição errada, erros ou avisos posteriores poderão não se aplicar ao seu projeto. Quando você corrige problemas em seu projeto, sempre comece com o primeiro erro ou aviso relatado e recompile com frequência. Uma correção pode fazer com que muitos erros subsequentes desapareçam.

Para obter ajuda em uma mensagem de diagnóstico específica no Visual Studio, selecione-a na janela Saída e pressione a tecla F1. O Visual Studio abre a página de documentação desse erro, se houver uma. Você também pode usar a ferramenta de pesquisa na parte superior da página para encontrar artigos sobre erros ou avisos específicos. Ou navegue pela lista de erros e avisos por ferramenta e digite no sumário nesta página.

Observação

Nem todos os erros ou avisos do Visual Studio estão documentados. Em muitos casos, a mensagem de diagnóstico fornece todas as informações que estão disponíveis. Se você chegou a esta página ao usar F1 e acha que a mensagem de erro ou aviso precisa de explicações adicionais, informe-nos. Você pode usar os botões de comentários nesta página para registrar um problema de documentação no GitHub. Se você achar que o erro ou o aviso está errado ou encontrou outro problema com o conjunto de ferramentas, relate um problema de produto no site da Developer Community. Você também pode enviar comentários e inserir bugs no IDE. No Visual Studio, vá para a barra de menus e escolha Ajuda > Enviar Comentários > Relatar um Problema ou envie uma sugestão usando Ajuda > Enviar Comentários > Enviar uma Sugestão. Foram criados alguns tópicos de erro do compilador que não são emitidos pelo compilador e agora redirecionam para esta página.

Você pode encontrar assistência adicional para erros e avisos nos fóruns Perguntas e respostas do Microsoft Learn. Alternativamente, pesquise o número do erro ou aviso no site da Developer Community do Visual Studio C++. Você também pode pesquisar o Stack Overflow para encontrar soluções.

Para obter links para ajuda adicional e recursos da comunidade, confira Ajuda e Comunidade do Visual C++.

Mensagens de erro

Erro Mensagem
Erro do compilador C2500 'identificador1': 'identificador2' já é uma classe base direta
Erro do compilador C2501 'identificador': '__declspec(especificador)' só pode ser aplicado a structs, uniões, classes ou membros de campo de bits sem sinal
Erro do compilador C2502 'identificador': muitos modificadores de acesso na classe base
Erro do compilador C2503 'classe' : as classes base não podem conter matrizes de tamanho zero
Erro do compilador C2504 'classe' : classe base indefinida
Erro do compilador C2505 'símbolo': '__declspec(especificador)' só pode ser aplicado a declarações ou definições de objetos globais ou membros de dados estáticos
Erro do compilador C2506 'membro' : '__declspec(especificador)' não pode ser aplicado a este símbolo
Erro do compilador C2507 'identificador': muitos modificadores virtuais na classe base
Erro do compilador C2508 'identificador': '__declspec(especificador1)' não pode ser combinado com '__declspec(especificador2)'
Erro do compilador C2509 'identificador': função membro não declarada em 'classe'
Erro do compilador C2510 'identificador': é preciso ter uma classe/struct/união à esquerda de '::'
Erro do compilador C2511 'identificador': função membro sobrecarregada não encontrada em 'classe'
Erro do compilador C2512 'identificador': nenhum construtor padrão apropriado disponível
Erro do compilador C2513 '*tipo': nenhuma variável declarada antes de '='
Erro do compilador C2514 'classe': a classe não tem construtores
Erro do compilador C2515 'identificador': 'vtguard' só pode ser aplicado a declarações de classe ou definições
Erro do compilador C2516 'classe': não é uma classe base válida
Erro do compilador C2517 'identificador': conteúdo indefinido à direita de '::'
Erro do compilador C2518 palavra-chave 'palavra-chave' ilegal na lista de classes base; ignorado
Erro do compilador C2519 'identificador': os atributos WinRT só podem conter campos públicos
Erro do compilador C2520 'classe': nenhum construtor não explícito disponível para conversão implícita
Erro do compilador C2521 um destruidor/finalizador não aceita argumentos
Erro do compilador C2522 'identificador': o identificador de sobrecarga não pode ser usado em 'identificador1', pois já está especificado em 'identificador2'
Erro do compilador C2523 'classe::~identificador': marca de destruidor/finalizador incompatível
Erro do compilador C2524 'identificador': um destruidor/finalizador precisa ter uma lista de parâmetros 'void'
Erro do compilador C2525 'identificador': o parâmetro 'identificador1' é chamado de 'identificador2' na função base e deve corresponder em uma implementação publicada
Erro do compilador C2526 'identificador1': a função de vínculo C não pode retornar a classe C++ 'identificador2'
Erro do compilador C2527 'identificador': DefaultOverload não pode ser especificado em 'função1' e 'função2'. Remover uma especificação ou renomear a função durante a implementação
Erro do compilador C2528 'identificador': um ponteiro para uma referência é inválido
Erro do compilador C2529 'identificador': uma referência à referência é ilegal
Erro do compilador C2530 'identificador': as referências devem ser inicializadas
Erro do compilador C2531 'identificador': referência a um campo de bits inválida
Erro do compilador C2532 'identificador': modificador ilegal para referência
Erro do compilador C2533 'identificador': construtores não permitem um tipo de retorno
Erro do compilador C2534 'identificador': o construtor não pode retornar um valor
Erro do compilador C2535 'identificador': função membro já definida ou declarada
Erro do compilador C2536 Obsoleto.
Erro do compilador C2537 'especificador': especificação de vínculo ilegal
Erro do compilador C2538 Obsoleto.
Erro do compilador C2539 Obsoleto.
Erro do compilador C2540 expressão não constante como limite da matriz
Erro do compilador C2541 'identificador': não é possível excluir objetos que não são ponteiros
Erro do compilador C2542 'identificador': o objeto de classe não tem construtor para inicialização
Erro do compilador C2543 esperado ']' para o operador '[]'
Erro do compilador C2544 ')' esperado para o operador '()'
Erro do compilador C2545 'operador': não é possível encontrar um operador sobrecarregado
Erro do compilador C2546 'identificador': quando um tipo é definido em um PIA (primary interop assembly) e em um não PIA, o PIA deve ser referenciado primeiro
Erro do compilador C2547 'identificador': Todos os parâmetros de um método publicado devem ser nomeados explicitamente na declaração
Erro do compilador C2548 'função': parâmetro padrão ausente para parâmetro parâmetro
Erro do compilador C2549 conversão definida pelo usuário não pode especificar um tipo de retorno
Erro do compilador C2550 'identificador': as listas de inicializadores de construtores só são permitidas em definições de construtor
Erro do compilador C2551 o tipo "void*" precisa de uma conversão explícita
Erro do compilador C2552 'identificador': não agregados não podem ser inicializados com a lista de inicializadores
Erro do compilador C2553 'type derived_class::function': substituir o tipo de retorno da função virtual difere do 'type base_class::function'
Erro do compilador C2555 'classe_derivada::função': substituir o tipo de retorno da função virtual difere e não é covariante de 'classe_base::função'
Erro do compilador C2556 'type1 class::function': a função sobrecarregada difere apenas pelo tipo de retorno de 'type2 class::function'
Erro do compilador C2557 'identificador': membros privados e protegidos não podem ser inicializados sem um construtor
Erro do compilador C2558 classe 'classe': nenhum construtor de cópia disponível ou construtor de cópia declarado como 'explicit'
Erro do compilador C2559 'identificador': não é possível sobrecarregar uma função membro sem um qualificador de referência com uma função membro com um qualificador de referência
Erro do compilador C2560 'identificador': não é possível sobrecarregar uma função membro sem um qualificador de referência com uma função membro com um qualificador de referência
Erro do compilador C2561 'função': a função deve retornar um valor
Erro do compilador C2562 'função': função 'void' retornando um valor
Erro do compilador C2563 incompatibilidade na lista de parâmetros formais
Erro do compilador C2564 Obsoleto.
Erro do compilador C2565 'identificador': o qualificador de referência é inválido para construtores/destruidores
Erro do compilador C2566 função sobrecarregada em expressão condicional
Erro do compilador C2567 não é possível abrir metadados em 'nome do arquivo', motivo_possível
Erro do compilador C2568 'identificador': não é possível resolver a sobrecarga de função
Erro do compilador C2569 'identificador': enumeração/união não pode ser usado como uma classe base
Erro do compilador C2570 'identificador': união não pode possuir classes base
Erro do compilador C2571 'identificador': a função virtual não pode estar na união 'união'
Erro do compilador C2572 'função': redefinição do argumento padrão: parâmetro número
Erro do compilador C2573 'classe': não é possível excluir ponteiros para objetos desse tipo; a classe não tem sobrecarga de não posicionamento para 'operator delete'. Use ::delete ou adicione 'operator delete(void*)' à classe
Erro do compilador C2574 'destruidor': não pode ser declarado como estático
Erro do compilador C2575 'identificador': apenas funções membro e base podem ser virtuais
Erro do compilador C2576 'identificador': não é possível introduzir um novo método virtual como 'público'. Considere tornar o método não virtual ou alterar a acessibilidade para 'interno' ou 'privado protegido'
Erro do compilador C2577 'identificador': o destruidor/finalizador não pode ter um tipo de retorno
Erro do compilador C2578 'classe': o tipo não pode ter um construtor 'protegido' ou 'público protegido'
Erro do compilador C2579 não é possível resolver o tipo 'tipo' (deslocamento). É esperado no nome do arquivo
Erro do compilador C2580 'identificador': não são permitidas várias versões de uma função membro especial definida como padrão
Erro do compilador C2581 'tipo': a função estática 'operator =' é inválida
Erro do compilador C2582 A função 'operator operador' não está disponível no 'tipo'
Erro do compilador C2583 'identificador': ponteiro 'const/volatile' 'this' é ilegal para construtores/destruidores
Erro do compilador C2584 'classe': a base direta 'classe_base2' está inacessível; já é uma base de 'classe_base1'
Erro do compilador C2585 a conversão explícita para 'tipo' é ambígua
Erro do compilador C2586 sintaxe incorreta de conversão definida pelo usuário: indireções inválidas
Erro do compilador C2587 'identificador': uso ilegal de variável local como parâmetro padrão
Erro do compilador C2588 '::~identificador': destruidor/finalizador global ilegal
Erro do compilador C2589 'identificador': token inválido no lado direito de '::'
Erro do compilador C2590 'identificador': apenas um construtor pode possuir uma lista de inicializadores de base/membro
Erro do compilador C2591 ExclusiveTo não pode usar 'tipo' como um argumento. Apenas uma 'classe ref' é um argumento válido
Erro do compilador C2592 'classe': 'classe_base2' é herdada de 'classe_base1' e não pode ser especificada novamente
Erro do compilador C2593 'operator identificador' é ambíguo
Erro do compilador C2594 'operador': conversões ambíguas do 'tipo1' para o 'tipo2'
Erro do compilador C2595 'identificador' Um tipo de atributo WinRT deve ser selado
Erro do compilador C2596 'identificador' Um campo de atributo WinRT somente pode ser uma 'public enum class', 'int', 'unsigned int', 'bool', 'Platform::Type', 'Platform::String' ou 'Windows::Foundation::HResult'
Erro do compilador C2597 referência ilegal para o 'identificador' do membro não estático
Erro do compilador C2598 especificação de vínculo deve estar em escopo global
Erro do compilador C2599 'identificador': declaração de encaminhamento de uma enumeração gerenciada/WinRT não é permitida

Confira também

Compilador C/C++ e erros e avisos das ferramentas de build
Erros do compilador C2000 a C3999, C7000 a C7999