Conteúdo do Curso
C++ Poo
C++ Poo
Delegação de Construtores
Delegação de construtor (também chamada de encadeamento ou encaminhamento de construtor) permite que um construtor chame outro dentro da mesma classe para reutilizar lógica comum de inicialização.
Sintaxe da Delegação de Construtor
A delegação de construtor geralmente é utilizada na sintaxe de uma lista de inicialização. Ela envolve o uso do operador dois-pontos (:
), seguido pelo construtor para o qual se deseja delegar, e então quaisquer argumentos ou parâmetros adicionais que precisam ser passados.
user_account.h
class UserAccount { public: // Primary constructor UserAccount(int userId, int accessLevel) : userId(userId), accessLevel(accessLevel) { // Constructor body } // Delegating constructor (default accessLevel) UserAccount(int userId) : UserAccount(userId, 0) { // Constructor body } int userId; int accessLevel; };
O uso de listas de inicialização para delegação de construtores não é obrigatório, mas geralmente é recomendado por questões de clareza e desempenho. Se necessário, é possível chamar um construtor sobrecarregado a partir de outro construtor.
point.h
#include <iostream> class Point { public: // Delegating constructor to initialize default point at origin Point() { Point(0, 0); } // Main constructor Point(int x, int y) : x(x), y(y) {} int x, y; };
Recursão infinita potencial pode ocorrer ao utilizar delegação de construtores. Certifique-se de estruturar os construtores para evitar loops de invocação recursiva
Delegação de construtores oferece múltiplos benefícios na programação orientada a objetos e é conveniente de usar, apesar de qualquer complexidade inicial que possa aparentar.
Obrigado pelo seu feedback!