¿Qué es la sobrecarga de constructores en C++? Características y tipos

Publicado: 2021-05-24

C++ es un lenguaje de programación orientado a objetos de uso común en la industria. C++ es un lenguaje de programación pionero en OOP, desarrollado por Bjarne Stroustrup en AT&T Bell Laboratories en el año 1979 . La característica más utilizada de c ++ podría ser crear una clase en él. Dentro de una clase, podemos crear miembros de clase: métodos y variables.

Tabla de contenido

Introducción

Los constructores se utilizan a menudo para crear objetos o, técnicamente, crear instancias de un objeto. En la mayoría de los lenguajes de programación orientados a objetos, también están sobrecargados. Como en muchos lenguajes de programación, el nombre del constructor está predeterminado en función del de la clase. Esto limita los objetos nombrados ya que puede haber un solo constructor. En un escenario donde se requieren varios constructores, se implementan mediante las funciones de sobrecarga.

En C++, los constructores predeterminados no tienen parámetros. Se crean instancias de los miembros del objeto con los valores predeterminados correspondientes.

Puede tener una buena idea de la sobrecarga de conceptos utilizados en la Programación Orientada a Objetos.

Constructor

Un constructor (ctor) es una técnica de programación utilizada para crear un objeto en la programación orientada a objetos basada en clases. Se crea un nuevo objeto llamando a una subrutina de propósito especial. Es una función miembro de una clase que, a su vez, inicializa objetos de una clase. Este método acepta argumentos. Los parámetros proporcionados son utilizados por el constructor base y las variables miembro del conjunto.

Características del Constructor

Un constructor es una función miembro especial de la clase. Es diferente de una función miembro genérica por las siguientes razones:

  • El miembro constructor tiene alcance público
  • Tiene el mismo nombre que la clase declarante.
  • El nombre distingue entre mayúsculas y minúsculas
  • Los constructores no tienen un tipo de retorno.
  • El constructor predeterminado se crea implícitamente.
  • Al crear un objeto, el constructor se llama automáticamente.
  • Un constructor no se hereda implícitamente.
  • Por lo general, tiene reglas diferentes para los modificadores de alcance.

Tipos de constructores

Constructores predeterminados : el constructor que tiene parámetros nulos y sin argumentos. Son constructores implícitos generados por el compilador.

Los constructores parametrizados son aquellos a través de los cuales puede pasar argumentos. Los argumentos inicializan un objeto que se creó. Cree un constructor parametrizado simplemente agregándole parámetros, similar a lo que hacemos con cualquier otra función. Use los parámetros en el cuerpo del constructor para inicializar el objeto. Este tipo de constructor se usa comúnmente para sobrecargar y también para inicializar varios elementos de datos de objetos con diferentes valores iniciales.

Copy Constructor : es una función miembro utilizada para inicializar un objeto utilizando otro objeto de la misma clase. El compilador, de forma predeterminada, crea un constructor de copias para cada clase, siguiendo una copia de miembros entre objetos.

Constructor en C++

En C++, se llama automáticamente a un constructor cuando un objeto (es decir, la instancia de una clase) lo crea.

Si no especificamos un constructor, el compilador de c++ genera un constructor predeterminado para nosotros (no espera parámetros y tiene el nombre de la clase).

Un constructor correctamente escrito deja el objeto resultante en un estado válido.

Sobrecarga de constructores

La sobrecarga de constructores es un fenómeno en el que un constructor sobrecarga a otro constructor.

El constructor dado puede sobrecargarse, de forma similar a la sobrecarga de funciones.

Los constructores sobrecargados siguen el mismo nombre que el de la clase. Sin embargo, varía en varios argumentos. Al crear un objeto, el tipo de argumentos pasados ​​determina a qué constructor se llama.

La disponibilidad de múltiples constructores con diferentes parámetros ayuda a realizar diferentes tareas en la programación.

Sobrecarga de constructores en C++

En C++, hay varios constructores en una clase con el mismo nombre pero con una lista diferente de argumentos. Este concepto de sobrecarga de constructores en C++ es bastante similar a la sobrecarga de funciones.

Por lo general, debe crear más de un constructor en una clase para inicializar las variables miembro de manera diferente para los objetos. El criterio para que los constructores se comporten de manera diferente es tener un número diferente de parámetros o un posicionamiento diferente o tipos de datos diferentes para los parámetros.

La industria abstrae a los constructores que crean firmemente objetos usando una sola clase y devuelven una nueva instancia de la clase, que crea objetos pero puede hacerlo de diferentes maneras usando diferentes clases o diferentes esquemas de asignación, como grupos de objetos.

¿Cómo funciona la sobrecarga de constructores en C++?

Consideremos el ejemplo como se muestra a continuación:

El código ilustra un ejemplo de sobrecarga de constructores en C++ .

Hay 2 constructores de la clase "calcular":

  1. Un constructor predeterminado (sin ningún parámetro)
  2. El constructor con tres parámetros

Y en main() hay dos objetos creados.

1. fuera:

Cuando se crea, invocará automáticamente el constructor predeterminado sin parámetros. Esto se debe a que al crear un objeto, no se pasa ningún parámetro. Por lo tanto, coincide con la definición de primero (Constructor predeterminado). Esto asignará valores 0 a las tres variables para ese objeto de la clase principal.

2. salida2:

Cuando se crea, invocará automáticamente al constructor con 3 parámetros. Esto se debe a que al crear un objeto, solo se pasa 1 parámetro. Entonces, coincide con la definición del Segundo Constructor. Esto asignará 3 valores (pasados ​​como parámetros) a la variable para ese objeto de la clase principal.

Aprenda cursos de ingeniería de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

Comprender el concepto de programación para la sobrecarga de constructores en c ++ es una habilidad importante para programadores y diseñadores de sistemas. Los estudiantes en el flujo de programas informáticos y relacionados con la informática pueden mejorar sus habilidades y credibilidad técnica, como los conceptos de programación orientada a objetos y la optimización del código. Los recursos y la base de conocimientos del portal upGrad alientan a estos profesionales a adquirir experiencia en programación para competir en el mercado de la industria. Además, tendrá la oportunidad de explorar la creación de redes profesionales y el desarrollo de habilidades.

Si está interesado en obtener más información sobre el desarrollo de software de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos y asignaciones, estado de ex alumnos de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.

¿Qué son los constructores en programación?

Los constructores en programación son las funciones cuyo objetivo principal es inicializar el objeto y realizar otras tareas simples. Los constructores se utilizan para la programación orientada a objetos, que es un paradigma de programación popular utilizado. Un programa orientado a objetos contiene objetos que a su vez tienen propiedades, métodos y eventos. Para crear un objeto, debe usar un constructor y, para poder usar el objeto, debe instanciarlo.

¿Qué es la sobrecarga del constructor?

La sobrecarga de constructores significa tener más de un constructor con el mismo nombre. Los constructores son métodos invocados cuando se crea un objeto. Debe usar el mismo nombre para todos los constructores, que es el nombre de la clase. Esto se hace declarando el constructor con un número diferente de argumentos. Si no hay argumentos para pasar, se invoca el constructor predeterminado. Si hay un solo argumento, entonces se invoca el constructor que toma un solo argumento. Si hay dos o más argumentos, se invoca el constructor que toma exactamente dos o más argumentos.

¿Cómo inicializar objetos usando constructores?

Los constructores son cruciales cuando se trata de la inicialización de sus clases. Son un tipo especial de función que se utiliza para crear e inicializar objetos. A veces no queremos crear todos los campos de la clase porque no son necesarios. Si creamos todos los campos, debemos inicializar todos los campos. En este caso, usamos el constructor predeterminado e inicializamos los campos como queremos. Cuando crea una clase, puede crear uno o más constructores dentro de la clase. Por lo tanto, cuando crea objetos para esa clase en particular, puede llamar fácilmente al constructor junto con los argumentos que desea establecer. Estos argumentos se pueden establecer como los valores de los campos o atributos de la clase cuyo constructor se llama.