Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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