Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Constructores C++

Constructores C++

En este tutorial, aprenderemos sobre el constructor de C++ y su tipo con los ejemplos de ayuda.

Un constructor es un tipo especial de función miembro que se llama automáticamente cuando se crea un objeto.

En C++, un constructor tiene el mismo nombre que el de la clase y no tiene tipo de retorno. Por ejemplo,

class  Wall {
  public:
    // create a constructor
    Wall() {
      // code
    }
};

Aquí, la función Wall() es un constructor de la clase Wall . Observe que el constructor


Constructor predeterminado de C++

Un constructor sin parámetros se conoce como constructor predeterminado . En el ejemplo anterior, Wall() es un constructor predeterminado.


Ejemplo 1:Constructor predeterminado de C++

// C++ program to demonstrate the use of default constructor

#include <iostream>
using namespace std;

// declare a class
class  Wall {
  private:
    double length;

  public:
    // default constructor to initialize variable
    Wall() {
      length = 5.5;
      cout << "Creating a wall." << endl;
      cout << "Length = " << length << endl;
    }
};

int main() {
  Wall wall1;
  return 0;
}

Salida

Creating a Wall
Length = 5.5

Aquí, cuando el wall1 se crea el objeto, el Wall() se llama constructor. Esto establece la longitud variable del objeto a 5.5 .

Nota: Si no hemos definido un constructor en nuestra clase, el compilador de C++ creará automáticamente un constructor predeterminado con un código vacío y sin parámetros.


Constructor parametrizado de C++

En C++, un constructor con parámetros se conoce como constructor parametrizado. Este es el método preferido para inicializar los datos de los miembros.


Ejemplo 2:Constructor parametrizado de C++

// C++ program to calculate the area of a wall

#include <iostream>
using namespace std;

// declare a class
class Wall {
  private:
    double length;
    double height;

  public:
    // parameterized constructor to initialize variables
    Wall(double len, double hgt) {
      length = len;
      height = hgt;
    }

    double calculateArea() {
      return length * height;
    }
};

int main() {
  // create object and initialize data members
  Wall wall1(10.5, 8.6);
  Wall wall2(8.5, 6.3);

  cout << "Area of Wall 1: " << wall1.calculateArea() << endl;
  cout << "Area of Wall 2: " << wall2.calculateArea();

  return 0;
}

Salida

Area of Wall 1: 90.3
Area of Wall 2: 53.55

Aquí, hemos creado un constructor parametrizado Wall() que tiene 2 parámetros:double len y double hgt . Los valores contenidos en estos parámetros se utilizan para inicializar las variables miembro longitud y altura .

Cuando creamos un objeto del Wall class, pasamos los valores de las variables miembro como argumentos. El código para esto es:

Wall wall1(10.5, 8.6);
Wall wall2(8.5, 6.3);

Con las variables miembro así inicializadas, ahora podemos calcular el área de la pared con el calculateArea() función.


Constructor de copia de C++

El constructor de copias en C++ se usa para copiar datos de un objeto a otro.


Ejemplo 3:Constructor de copia de C++

#include <iostream>
using namespace std;

// declare a class
class Wall {
  private:
    double length;
    double height;

  public:

    // initialize variables with parameterized constructor
    Wall(double len, double hgt) {
      length = len;
      height = hgt;
    }

    // copy constructor with a Wall object as parameter
    // copies data of the obj parameter
    Wall(Wall &obj) {
      length = obj.length;
      height = obj.height;
    }

    double calculateArea() {
      return length * height;
    }
};

int main() {
  // create an object of Wall class
  Wall wall1(10.5, 8.6);

  // copy contents of wall1 to wall2
  Wall wall2 = wall1;

  // print areas of wall1 and wall2
  cout << "Area of Wall 1: " << wall1.calculateArea() << endl;
  cout << "Area of Wall 2: " << wall2.calculateArea();

  return 0;
}

Salida

Area of Wall 1: 90.3
Area of Wall 2: 90.3

En este programa, hemos usado un constructor de copia para copiar el contenido de un objeto del Wall clase a otra. El código del constructor de copias es:

Wall(Wall &obj) {
  length = obj.length;
  height = obj.height;
}

Note que el parámetro de este constructor tiene la dirección de un objeto del Wall clase.

Luego asignamos los valores de las variables del obj object a las variables correspondientes del objeto que llama al constructor de copia. Así es como se copian los contenidos del objeto.

En main() , luego creamos dos objetos wall1 y pared2 y luego copie el contenido de wall1 a pared2 :

// copy contents of wall1 to wall2
Wall wall2 = wall1;

Aquí, el muro2 objeto llama a su constructor de copias pasando la dirección de wall1 objeto como su argumento, es decir, &obj = &wall1 .

Nota :Un constructor se usa principalmente para inicializar objetos. También se utilizan para ejecutar un código predeterminado cuando se crea un objeto.


Lenguaje C

  1. Constructor C#
  2. Sobrecarga del constructor de C#
  3. Tipos de datos de C++
  4. Operadores de C++
  5. Comentarios de C++
  6. Plantillas de clase de C++
  7. Constructores Java
  8. Java - Constructores
  9. Descripción general de C++
  10. Constantes/Literales de C++
  11. Operadores en C++