CORRECÇÃO: O tipo de TypeDef causa C2275: uso inválido de tipo

Traduções deste artigo Traduções deste artigo
ID do artigo: 166513 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Usando um typedef conversão na inicialização de membro de uma classe pode causar os seguintes erros:

Erro C2275: 'test::run': uso ilegal desse tipo como uma expressão
Erro C2146: erro de sintaxe: ausente ') ' antes de identificador 'arg'
Erro C2612: à direita '. * |-> * ' inválido na lista de inicializador de membro/base
Erro C2059: erro de sintaxe: ') '
Erro C2143: erro de sintaxe: ausente '; 'before' {'
Erro fatal C1004: final de arquivo inesperado encontrado

Resolução

Use o tipo real em vez de typedef. Por exemplo, no exemplo a seguir use test::run em vez de test_run. Ou, use a notação funcional test_run (arg) para conversão de tipo em vez da notação de conversão. Outra opção é inicializar o membro no corpo da função.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo. Esse problema foi corrigido no Microsoft Visual C++ versão 6.0.

Mais Informações

/* Compiler Options Needed : none */ 

    class test {
    public:
        enum run{ one, two, three };
    };

    typedef test::run test_run;

    class test2 {
        test2(int);
        ~test2();
    public:
        test_run testvalue;
    };

    test2::test2(int arg):testvalue( (test_run) arg) {}     //Causes error

    // test2::test2(int arg):testvalue( (test::run) arg) {} //WORKAROUND 1
    // test2::test2(int arg):testvalue( test_run (arg)) {}  //WORKAROUND 2
				

Propriedades

ID do artigo: 166513 - Última revisão: terça-feira, 5 de julho de 2005 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ 4.2 Enterprise Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
Palavras-chave: 
kbmt kbbug kbfix kbvc600fix KB166513 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 166513
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com