O que é sobrecarga de construtor em C++: características e tipos
Publicados: 2021-05-24C++ é uma linguagem de programação orientada a objetos comumente usada na indústria. C++ é uma linguagem de programação pioneira em OOP, desenvolvida por Bjarne Stroustrup nos Laboratórios AT&T Bell no ano de 1979 . O recurso de c++ usado com mais frequência pode ser criar uma classe nele. Dentro de uma classe, podemos criar membros de classe – métodos e variáveis.
Índice
Introdução
Construtores são frequentemente usados para criar objetos ou, tecnicamente, criar instâncias de um objeto. Na maioria das linguagens de programação orientadas a objetos, elas também estão sobrecarregadas. Como em muitas linguagens de programação, o nome do construtor é predeterminado com base no nome da classe. Isso limita os objetos nomeados, pois pode haver um único construtor. Em um cenário em que vários construtores são necessários, eles são implementados usando as funções de sobrecarga.
Em C++, os construtores padrão não têm parâmetros. Eles são instanciados a partir dos membros do objeto com os valores padrão correspondentes.
Você pode ter uma boa ideia dos conceitos de sobrecarga usados na Programação Orientada a Objetos.
Construtor
Um construtor (ctor) é uma técnica de programação usada para criar um objeto em programação orientada a objetos baseada em classes. Um novo objeto é criado chamando uma sub-rotina de propósito especial. É uma função membro de uma classe que, por sua vez, inicializa objetos de uma classe. Este método aceita argumentos. Os parâmetros fornecidos são usados pelo construtor base e variáveis de membro do conjunto.
Características do Construtor
Um construtor é uma função membro especial da classe. É diferente de uma função de membro genérica pelos seguintes motivos:
- O membro construtor tem escopo público
- Tem o mesmo nome da classe declarante.
- O nome diferencia maiúsculas de minúsculas
- Construtores não têm um tipo de retorno.
- O construtor padrão é criado implicitamente.
- Ao criar um objeto, o construtor é chamado automaticamente.
- Um construtor não é herdado implicitamente.
- Geralmente tem regras diferentes para modificadores de escopo.
Tipos de Construtores
Construtores padrão – O construtor com parâmetros nulos e sem argumentos. Eles são construtores implícitos gerados pelo compilador.
Construtores parametrizados são aqueles pelos quais você pode passar argumentos. Os argumentos inicializam um objeto que foi criado. Crie um construtor parametrizado simplesmente adicionando parâmetros a ele, semelhante ao que fazemos para qualquer outra função. Use os parâmetros no corpo do construtor para inicializar o objeto. Esse tipo de construtor é comumente usado para sobrecarga e também para inicializar vários elementos de dados de objetos com valores iniciais diferentes.
Copy Constructor – É uma função membro usada para inicializar um objeto usando outro objeto da mesma classe. O compilador, por padrão, cria um construtor de cópia para cada classe, seguindo uma cópia de membro entre objetos.
Construtor em C++
Em c++, um construtor é chamado automaticamente quando um objeto (ou seja, a instância de uma classe) o cria.
Se não especificarmos um construtor, o compilador c++ gera um construtor padrão para nós (não espera nenhum parâmetro e tem o nome da classe).
Um construtor escrito corretamente deixa o objeto resultante em um estado válido.
Sobrecarga do Construtor
Sobrecarga de construtor é um fenômeno de um construtor sobrecarregando outro construtor.
O construtor fornecido pode ser sobrecarregado, semelhante à sobrecarga da função.
Construtores sobrecarregados seguem o mesmo nome da classe. No entanto, varia em vários argumentos. Ao criar um objeto, o tipo de argumento passado determina qual construtor está sendo chamado.
A disponibilidade de vários construtores com diferentes parâmetros ajuda a realizar diferentes tarefas na programação.
Sobrecarga de construtor em C++
Em c++, existem vários construtores em uma classe com o mesmo nome, mas uma lista de argumentos diferente. Esse conceito de sobrecarga de construtor em c++ é bastante semelhante à sobrecarga de função.
Normalmente, você deve criar mais de um construtor em uma classe para inicializar variáveis de membro de maneira diferente para objetos. O critério para comportar construtores de maneira diferente é ter um número diferente de parâmetros ou posicionamento diferente ou tipos de dados diferentes para parâmetros.
Construtores que criam objetos firmemente usando uma única classe e retornam uma nova instância da classe são abstraídos pela indústria, que cria objetos, mas pode fazer de maneiras diferentes usando classes diferentes ou esquemas de alocação diferentes, como pools de objetos.
Como funciona a sobrecarga de construtor em C++?
Vamos considerar o exemplo como mostrado abaixo:
O código ilustrou um exemplo de sobrecarga de construtor em c++ .
Existem 2 construtores da classe “calculate”:
- Um construtor padrão (sem nenhum parâmetro)
- O Construtor com três parâmetros
E no main() existem dois objetos criados.
1. fora:
Quando for criado, ele invocará automaticamente o construtor padrão sem parâmetros. Isso ocorre porque ao criar um objeto, nenhum parâmetro é passado. Portanto, corresponde à definição de first(Default Constructor). Isso atribuirá 0 valores a todas as três variáveis para esse objeto da classe principal.
2. saída2:
Quando for criado, ele invocará automaticamente o construtor com 3 parâmetros. Isso ocorre porque ao criar um objeto, apenas 1 parâmetro é passado. Portanto, corresponde à definição do Segundo Construtor. Isso atribuirá 3 valores (passados como parâmetros) à variável desse objeto da classe principal.
Aprenda cursos de engenharia de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Conclusão
Compreender o conceito de programação para sobrecarga de construtor em c++ é uma habilidade significativa para programadores e projetistas de sistemas. Os alunos no fluxo de programas de computador e relacionados à computação podem aprimorar suas habilidades e credibilidades técnicas, como conceitos de POO e otimização de código. Os recursos e a base de conhecimento do portal upGrad incentivam esses profissionais a adquirir experiência em programação para competir no mercado da indústria. Além disso, você terá a oportunidade de explorar o networking profissional e o desenvolvimento de habilidades.
Se você estiver interessado em aprender mais sobre desenvolvimento de software full-stack, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.
O que são construtores em programação?
Construtores em programação são as funções cujo objetivo principal é inicializar o objeto e realizar outras tarefas simples. Construtores são usados para programação orientada a objetos, que é um paradigma de programação popular usado. Assim, um programa orientado a objetos contém objetos que, por sua vez, possuem propriedades, métodos e eventos. Para criar um objeto, você deve usar um construtor e para poder usar o objeto você deve instanciá-lo.
O que é sobrecarga de construtor?
Sobrecarga de construtor significa ter mais de um construtor com o mesmo nome. Construtores são métodos invocados quando um objeto é criado. Você tem que usar o mesmo nome para todos os construtores que é o nome da classe. Isso é feito pela declaração do construtor com um número diferente de argumentos. Se não houver argumentos para passar, o construtor padrão será invocado. Se houver um único argumento, o construtor que recebe um único argumento é invocado. Se houver dois ou mais argumentos, o construtor que recebe exatamente dois ou mais argumentos é invocado.
Como inicializar objetos usando construtores?
Construtores são cruciais quando se trata de inicialização de suas classes. Eles são um tipo especial de função que é usado para criar e inicializar objetos. Às vezes não queremos criar todos os campos da classe porque eles não são necessários. Se criarmos todos os campos, devemos inicializar todos os campos. Nesse caso, usamos o construtor padrão e inicializamos os campos como queremos. Ao criar uma classe, você pode criar um ou mais construtores dentro da classe. Assim, quando você cria objetos para essa classe específica, você pode facilmente chamar o construtor dela junto com os argumentos que deseja definir. Esses argumentos podem ser definidos como os valores dos campos ou atributos da classe cujo construtor é chamado.