Eu não sou o criador de notas, sou apenas um carregador de notas ~
1. O construtor pode estar sobrecarregado ou pode ser uma string de
construtor sem parâmetros
s que
corresponde a string com parâmetros padrão ; uma
string de construtor de parâmetro (const char *) s ("hello") que corresponde a string
2, o construtor padrão (sem construtor de parâmetros)
1) Se nenhum construtor for definido na classe, o compilador fornecerá um construtor padrão (sem parâmetro) para a classe:
- "Não o faça para variáveis de membro do tipo básico Inicialização
"Para variáveis de membro do tipo de classe (subobjetos de membro), ele automaticamente chamará o construtor sem parâmetros da classe correspondente para inicializar
2) Se você mesmo definir um construtor, independentemente de haver parâmetros, o compilador não fornecerá mais o construtor sem parâmetros padrão.
3, construtor de conversão de tipo (construtor de parâmetro único) // conversão de tipo do
nome da classe de classe do construtor {
// Pode converter variáveis de tipo de origem em objetos do tipo de classe atual.Nome da
classe (tipo de fonte) {...}
};
-----------------------------------
nome da classe {
// Adicionar modificação "explícita" da palavra-chave, você pode Obrigatório que esta
conversão de tipo // deva ser feita
explicitamente Nome explícito da classe (tipo de origem) {...}
};
4. O construtor de cópia (construtor de cópia) Acho que essa parte é bastante difícil de entender:
1) Use um objeto existente como parâmetro de construção de objetos semelhantes.Quando criar um novo objeto de cópia, o construtor de cópia será chamado.
classe nome da classe {nome da
classe (nome da classe const &) {// estrutura da cópia
...
}
};
------------
por exemplo:
classe A {...};
A a1 (.. .);
A a2 (a1); // Construtor de cópias de correspondência de A
2) Se uma classe não definir seu próprio construtor de cópias, o compilador fornecerá um construtor de cópias padrão para a classe:
-> Para variáveis de membro do tipo básico, copie por byte
- >> Para membros do tipo de classe Variável (subobjeto de membro) chamará automaticamente o construtor de cópia da classe correspondente para inicializar
Nota: Geralmente, não é necessário definir a função do construtor de cópia sozinho, porque o compilador a fornece por padrão já é muito fácil de usar.
classe A1 {}; // Nenhum parâmetro por padrão, cópia padrão
classe A2 {// cópia padrão
A (nula) {}
};
classe A3 {// cópia padrão
A (int) {}
};
classe A4 { // Não há estrutura padrão
A (const A &) {}
};
3) O tempo da chamada do construtor de cópia -
"Use um objeto existente como o parâmetro de construção do mesmo tipo de objeto -
" Passe os parâmetros para a função na forma de objeto -
"Retorne o objeto da função (pode ser otimizado pelo compilador)