ExpertiDict

C++ · Essencial · Português · Técnico

lista de inicialização de membros

ˈlistɐ dʒi inisjalizaˈsɐ̃w dʒi ˈmẽbɾuslocução nominal

Trecho após os dois-pontos do construtor que inicializa membros e classes base antes do corpo. É a única forma de inicializar membros const, referências e tipos sem construtor padrão.

Onde usar

Num code review, aponta-se atribuição no corpo do construtor que deveria estar na lista, pois o membro é criado e depois reatribuído. A ordem real segue a declaração dos membros na classe.

Em código

struct Config {
  const int limite;
  std::string nome;
  Config(int l, std::string n)
    : limite(l), nome(std::move(n)) {}
};

Exemplos

Esse membro const só pode ser inicializado na lista de inicialização.

Mova a atribuição do corpo do construtor para a lista de inicialização de membros.

Cuidado

A ordem escrita na lista não define a ordem real de inicialização, o que gera o aviso -Wreorder.

Sinônimos

member initializer list

Veja também

Todos os termos de C++