Conteúdo do Curso
C++ Poo
C++ Poo
O Que É um Construtor da Classe
Construtor é um método especial de uma classe que é chamado quando um objeto é criado. Com ele, é possível inicializar os atributos com valores significativos.
Ao utilizar construtores, é possível simplificar a criação de objetos. Sem um construtor, seria necessário definir cada propriedade individualmente e talvez fosse preciso chamar vários métodos apenas para deixar o objeto em um estado utilizável.
O principal objetivo de um construtor é inicializar a instância recém-criada. Ele pode definir os valores iniciais dos atributos com base nos parâmetros passados para o construtor, garantindo que o objeto comece em um estado válido.
Sintaxe do Construtor
Embora o processo de desenvolvimento de um construtor possa parecer simples, envolve diversas considerações específicas. A abordagem geral para criar um é:
student.h
class Student { public: Student() { name = 'Default'; } std::string name; };
Nome: o construtor possui o mesmo nome da própria classe;
Tipo de retorno: construtores não possuem tipo de retorno, nem mesmo
void
;Parâmetros: construtores podem receber parâmetros e podem ser sobrecarregados com diferentes conjuntos de parâmetros para permitir várias formas de inicializar objetos;
Invocação automática: o construtor é chamado automaticamente pelo compilador quando um objeto é criado.
Construtor padrão
Um construtor padrão é um construtor que pode ser invocado sem nenhum argumento. Veja como construtores padrão são definidos e utilizados:
main.cpp
#include <iostream> class Example { public: Example() { std::cout << "Object was created!"; } }; int main() { Example obj; }
Você pode experimentar com o código acima. A lógica escrita no método Example() é executada toda vez que uma instância da classe é criada.
Tente adicionar mais um objeto ou alterar a lógica dentro do construtor.
Se nenhum construtor for definido, o compilador gera um construtor padrão. Seu comportamento depende dos tipos das variáveis membro: tipos fundamentais, tipos com construtor padrão ou tipos definidos pelo usuário.
main.cpp
#include <iostream> class Example { public: int value; }; int main() { Example obj; // Default constructor std::cout << obj.value; }
Um atributo é um tipo de dado fundamental. O construtor padrão gerado automaticamente não inicializa variáveis membro de tipos embutidos. Elas terão valores indeterminados se você criar um objeto e não inicializar explicitamente esses campos.
Você pode perceber que o compilador fornece um valor consistente para a variável value, mas o padrão não exige isso e é possível que ela contenha um valor lixo.
Obrigado pelo seu feedback!