Partilhar 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 compilação do Visual Studio podem relatar muitos tipos de erros e avisos. Depois que um erro ou aviso é encontrado, as ferramentas de compilação podem 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 podem não se aplicar ao seu projeto. Quando você corrige problemas em seu projeto, sempre comece com o primeiro erro ou aviso relatado e recrie com frequência. Uma correção pode resolver vários erros subsequentes.

Para obter ajuda sobre uma mensagem de diagnóstico específica no Visual Studio, selecione-a na janela Output e pressione a tecla F1. O Visual Studio abre a página de documentação para esse erro, se existir. 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 o índice nesta página.

Observação

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

Você pode encontrar assistência adicional para erros e avisos em fóruns do Microsoft Q&A C++. Ou, procure o número de erro ou aviso no Visual Studio C++ Developer Community site. Você também pode pesquisar Stack Overflow para encontrar soluções.

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

Mensagens de erro

Erro Mensagem
Erro do compilador C2500 'identifier1': 'identifier2' já é uma classe base direta
Erro de compilador C2501 'identificador': '__declspec(especificador)' só pode ser aplicado a structs, uniões, classes ou membros de campo bit não assinados
Erro do compilador C2502 'identificador': demasiados modificadores de acesso na classe base
Erro do compilador C2503 'classe': as classes base não podem conter matrizes de tamanho zero
Erro de compilador C2504 «classe»: classe base indefinida
Erro de 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 de compilador C2506 «Membro»: «__declspec(especificador)» não pode ser aplicado a este elemento
Erro de compilador C2507 'identifier': muitos modificadores virtuais na classe base
Erro de compilador C2508 «identificador»: «__declspec(especificador1)» não pode ser combinado com «__declspec(especificador2
Erro de compilador C2509 'identificador': função de membro não declarada em 'classe'
Erro do compilador C2510 'identificador': à esquerda de '::' deve ser uma classe/struct/união
Erro de compilador C2511 'identificador': função de membro sobrecarregado não encontrada em 'classe'
Erro de compilador C2512 'identifier': nenhum construtor padrão apropriado disponível
Erro de compilador C2513 '*type': nenhuma variável declarada antes de '='
Erro de compilador C2514 'classe': classe não tem construtores
Erro de compilador C2515 «identificador»: «vtguard» só pode ser aplicado a declarações ou definições de classe
Erro de compilador C2516 «classe»: não é uma classe de base jurídica
Erro de compilador C2517 'identificador': direito de '::' é indefinido
Erro de compilador C2518 a palavra-chave 'palavra-chave' é inválida numa lista de classes base; Esperava um class nome
Erro do compilador C2519 'identificador': os atributos do WinRT só podem conter campos públicos
Erro de compilador C2520 'class': nenhum construtor não explícito disponível para conversão implícita
Erro de compilador C2521 Um destruidor/finalizador não aceita argumentos
Erro do compilador C2522 'identifier': O identificador de sobrecarga não pode ser usado em 'identifier1', pois já está especificado em 'identifier2'
Erro do compilador C2523 'class::~identifier': incompatibilidade de tags de destrutor/finalizador
Erro do compilador C2524 «Identificador»: um destruidor/finalizador deve ter uma lista de parâmetros «nula»
Erro do compilador C2525 'identifier': O parâmetro 'identifier1' é denominado 'identifier2' na função base e deve ser correspondido em uma implementação publicada
Erro de compilador C2526 'identifier1': a função de ligação C não pode retornar a classe C++ 'identifier2'
Erro do compilador C2527 'identifier': DefaultOverload não pode ser especificado em 'function1' e 'function2'. Remova uma especificação ou renomeie a função durante a implementação
Erro de compilador C2528 «identificador»: o apontador para referência é ilegal
Erro de compilador C2529 «Identificador»: a referência para a referência é ilegal
Erro do compilador C2530 «Identificador»: as referências devem ser inicializadas
Erro de compilador C2531 'identificador': referência a um campo de bits ilegal
Erro do compilador C2532 «identificador»: modificador ilegal para referência
Erro do compilador C2533 'identifier': construtores não permitem um tipo de retorno
Erro do compilador C2534 'identifier': o construtor não pode retornar um valor
Erro de compilador C2535 «Identificador»: função de membro já definida ou declarada
Erro de compilador C2536 Obsoleto.
Erro de compilador C2537 «Especificador»: especificação de ligação ilegal
Erro do compilador C2538 Obsoleto.
Erro de compilador C2539 Obsoleto.
Erro do compilador C2540 expressão não constante como limite de matriz
Erro do compilador C2541 'identificador': não é possível excluir objetos que não são ponteiros
Erro do compilador C2542 'identifier': objeto de classe não tem construtor para inicialização
Erro do compilador C2543 «]» esperado para o operador «[]»
Erro de compilador C2544 esperado «)» para o operador «()»
Erro do compilador C2545 «Operador»: incapaz de encontrar um operador sobrecarregado
Erro do compilador C2546 «identificador»: quando um tipo é definido tanto num PIA como num no-PIA, o PIA deve ser referenciado em primeiro lugar
Erro de compilador C2547 «Identificador»: Todos os parâmetros de um método publicado devem ser explicitamente mencionados na declaração
Erro de compilador C2548 'function': argumento padrão ausente para o parâmetro parameter
Erro do compilador C2549 A conversão definida pelo usuário não pode especificar um tipo de retorno
Erro de compilador C2550 'identifier': as listas de inicializadores do construtor só são permitidas nas definições do construtor
Erro de compilador C2551 O tipo 'void *' precisa de uma conversão explícita
Erro de compilador C2552 'identificador': não-agregados não podem ser inicializados com uma lista de inicialização
Erro de compilador C2553 'typederived_class::function': substituindo o tipo de retorno de função virtual difere de 'typebase_class::function'
Erro do compilador C2554 'variável': 'constinit' só é permitido em uma declaração variável com duração de armazenamento estático ou thread
Erro de compilador C2555 'derived_class::function': redefinindo o tipo de retorno da função virtual, que difere e não é covariante com 'base_class::function'
Erro de compilador C2556 'type1class::function': a função sobrecarregada difere apenas pelo tipo de retorno de 'type2class::function'
Erro do compilador C2557 'identifier': membros privados e protegidos não podem ser inicializados sem um construtor
Erro de compilador C2558 class 'class': nenhum construtor de cópia disponível ou construtor de cópia é declarado 'explícito'
Erro do compilador C2559 'identifier': não é possível sobrecarregar uma função-membro sem qualificador-de-referência com uma função-membro com qualificador-de-referência
Erro do compilador C2560 'identifier': não é possível sobrecarregar uma função de membro com ref-qualifier com uma função de membro sem ref-qualifier
Erro de compilador C2561 'função': a função deve retornar um valor
Erro do compilador C2562 'function': função 'void' que retorna um valor
Erro do compilador C2563 incompatibilidade na lista de parâmetros formais
Erro de compilador C2564 Obsoleto.
Erro do compilador C2565 'identificador': ref-qualifier é ilegal para construtores/destruidores
Erro do compilador C2566 função sobrecarregada na expressão condicional
Erro do compilador C2567 Não é possível abrir metadados em 'Nome do arquivo', possible_reason
Erro do compilador C2568 'identificador': incapaz de resolver a sobrecarga de função
Erro de compilador C2569 «Identificador»: ENUM/Union não pode ser utilizado como classe de base
Erro de compilador C2570 'identificador': união não pode ter classes base
Erro do compilador C2571 'identificador': função virtual não pode estar na união 'união'
Erro de compilador C2572 'função': redefinição do argumento padrão do parâmetro número
Erro de compilador C2573 'classe': não é possível excluir ponteiros para objetos desse tipo; a classe não tem nenhuma sobrecarga de posição para 'operator delete'. Use ::delete, ou adicione 'operator delete(void*)' à classe
Erro do compilador C2574 'função': não pode ser declarada estática
Erro do compilador C2575 'identificador': apenas as funções e bases dos membros 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': um 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 de 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 funções membro especiais padronizadas
Erro do compilador C2581 'type': a função estática 'operator =' é ilegal
Erro de compilador C2582 A função 'operador operador' não está disponível em 'tipo'
Erro do compilador C2583 'identifier': 'const/volatile' o ponteiro 'this' é ilegal para construtores/destruidores
Erro do compilador C2584 «classe»: a base direta «base_class2» está inacessível; já é uma base de «base_class1».
Erro de compilador C2585 a conversão explícita em «tipo» é ambígua
Erro do compilador C2586 Sintaxe incorreta de conversão definida pelo usuário: indireções ilegais
Erro de compilador C2587 'identifier': utilização ilegal de variável local como parâmetro padrão
Erro de compilador C2588 '::~identifier': destrutor/finalizador global ilegal
Erro de compilador C2589 'identificador': token ilegal no lado direito de '::'
Erro do compilador C2590 'identifier': apenas um construtor pode ter uma lista de inicializadores base/membro
Erro de compilador C2591 ExclusiveTo não pode usar 'type' como argumento. Apenas uma 'classe ref' é um argumento válido
Erro do compilador C2592 'classe': 'base_class2' é herdada de 'base_class1' e não pode ser reespecificada
Erro de compilador C2593 o « identificador do operador» é ambíguo
Erro de compilador C2594 «Operador»: conversões ambíguas de «tipo1» para «tipo2»
Erro do compilador C2595 'identifier' Um tipo de atributo WinRT deve ser selado
Erro de compilador C2596 'identifier' Um campo de atributo WinRT só pode ser uma 'classe enum pública', 'int', 'unsigned int', 'bool', 'Platform::Type', 'Platform::String' ou 'Windows::Foundation::HResult'
Erro de compilador C2597 referência ilegal a membro não estático «identificador»
Erro do compilador C2598 A especificação de ligação deve ter um âmbito global
Erro do compilador C2599 'identifier': a declaração antecipada de um enum gerido/WinRT não é permitida

Ver também

Erros e avisos do compilador C/C++ e das ferramentas de compilação
Erros de compilador C2000 - C3999, C7000 - C7999