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