C++ · Essencial · Português · Técnico
lista de inicialização de membros
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