¿Qué es el constructor y sus tipos en C ++?

Aprender: ¿Cuál es el constructor de en C ++ Programming Language? Tipos de constructores en C ++ , explique constructores con ejemplos.

Constructor es el tipo especial de función miembro en clases de C ++, que se invoca automáticamente cuando se crea un objeto . Es especial porque su nombre es igual que el nombre de la clase.

Constructor se usa para:

  • para inicializar el miembro de datos de la clase: En la función de miembro de constructor (que será declarado por el programador) podemos inicializar los valles default a los miembros de datos y que pueden ser utilizados adicionalmente para su procesamiento.
  • Para asignar memoria para miembro de datos: Constructor también se puede utilizar para declarar la memoria de tiempo de ejecución (memoria dinámica para los miembros de datos).

Hay siguientes propiedades del constructor:

  • constructor tiene el mismo nombre que el nombre de la clase. Es case sensible.
  • Constructor no tiene tipo return.
  • Podemos sobrecargar el constructor, significa que podemos crear más de un constructor de la clase.
  • Podemos utilizar el argumento default en el constructor.
  • Debe ser de tipo público.

Ejemplo:

#include <iostream>
using namespace std;
class Sample
{
private:
int X;
public:
//default constructor
Sample()
{
//data member initialization
X=5;
}
void set(int a)
{
X = a;
}
void print()
{
cout<<"Value of X : "<<X<<endl;
}
};
int main()
{
//Constructor called when object created
Sample S;
S.print();
//set new value
S.set(10);
S.print();
return 0;
}

salida

Value of X :  5
Value of X : 10

Tipos de constructores en C ++

Normalmente constructores son siguiente tipo:

  1. Default Constructor o Zero argumento del constructor
  2. parametrizada constructor
  3. constructor de copia
  4. Conversión constructor
  5. constructor explícito

Nota:
If no do creamos constructor de usuario definir la clase. Entonces compilador automáticamente inserto constructor cuerpo vacío en el código compilado.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *