INFO: Inicialização const dados de membro

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: 92614
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
O código-fonte exemplo abaixo demonstra como inicializar um membro const de uma classe. Observe que o código usa uma lista de inicialização de membro porque um membro const pode não aparecem no lado esquerdo do operador de atribuição. O valor deve ser definido quando o objeto é construído porque o valor de um membro const pode ser definido somente na inicialização.

Se um aplicativo tenta inicializar um const membro com o operador de atribuição, o compilador gerará as seguintes mensagens de erro:
Erro C2758: 'a': deve ser inicializada no construtor base/membro inicializador de lista

Erro C2166: lvalue Especifica objeto const
Usando o Visual C++ 32-bit Edition, versão 4.0, esse erro é relatado como:
Erro C2166: l-value Especifica o objeto const
A lista de inicialização do membro é o método preferencial para inicializar os membros de uma classe. Por exemplo, quando inicializar um objeto de um usuário-definida tipo, é mais eficiente usar uma lista de inicialização de membro para inicializar um membro de dados que para executar uma atribuição no construtor. A segunda abordagem exige duas chamadas: um para construir o membro de dados e outro para a função operator=() para atribuir um valor para o membro.

Código de exemplo

/* * Compile options needed: none */ #include <iostream.h>class demo{   const int a;public:   demo(int val = 0) : a(val) {}   int get_a(void) { return a; }};void main(){   demo first;   demo second(5);   cout << "First = " << first.get_a() << endl;   cout << "Second = " << second.get_a() << endl;}		

Saída

First = 0Second = 5		
Sumário

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 92614 - Última Revisão: 12/04/2015 09:19:55 - Revisão: 2.0

Microsoft Visual C++ 1.0 Professional Edition, Microsoft Visual C++ 1.5 Professional Edition, Microsoft Visual C++ 1.51, Microsoft Visual C++ 2.0 Professional Edition, Microsoft Visual C++ 2.1, Microsoft Visual C++ 4.0 Standard Edition, Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 5.0 Professional Edition

  • kbnosurvey kbarchive kbmt kbinfo kblangcpp KB92614 KbMtpt
Comentários