Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda O Que É um Construtor da Classe | Construtores e Destrutores
C++ Poo
course content

Conteúdo do Curso

C++ Poo

C++ Poo

1. Fundamentos de POO em C++
2. Construtores e Destrutores
3. Visão Geral do Encapsulamento
4. Visão Geral de Herança
5. Visão Geral do Polimorfismo

book
O Que É um Construtor da Classe

Note
Definição

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

student.h

copy
12345678
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

main.cpp

copy
1234567891011121314
#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.

Note
Nota

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

main.cpp

copy
123456789101112
#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.

Note
Nota

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.

question mark

Quando o construtor é chamado?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 1

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

course content

Conteúdo do Curso

C++ Poo

C++ Poo

1. Fundamentos de POO em C++
2. Construtores e Destrutores
3. Visão Geral do Encapsulamento
4. Visão Geral de Herança
5. Visão Geral do Polimorfismo

book
O Que É um Construtor da Classe

Note
Definição

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

student.h

copy
12345678
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

main.cpp

copy
1234567891011121314
#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.

Note
Nota

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

main.cpp

copy
123456789101112
#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.

Note
Nota

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.

question mark

Quando o construtor é chamado?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 1
some-alt