Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Construtores C++

Construtores C++


Neste tutorial, aprenderemos sobre o construtor C++ e seu tipo com os exemplos de ajuda.

Um construtor é um tipo especial de função membro que é chamado automaticamente quando um objeto é criado.

Em C++, um construtor tem o mesmo nome da classe e não possui um tipo de retorno. Por exemplo,

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

Aqui, a função Wall() é um construtor da classe Wall . Observe que o construtor

Construtor padrão C++


Um construtor sem parâmetros é conhecido como construtor padrão . No exemplo acima, Wall() é um construtor padrão.

Exemplo 1:Construtor padrão 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;
}

Saída
Creating a Wall
Length = 5.5

Aqui, quando o wall1 objeto é criado, o Wall() construtor é chamado. Isso define o comprimento variável do objeto para 5.5 .

Observação: Se não tivermos definido um construtor em nossa classe, o compilador C++ criará automaticamente um construtor padrão com um código vazio e sem parâmetros.

Construtor parametrizado C++




Em C++, um construtor com parâmetros é conhecido como construtor parametrizado. Este é o método preferencial para inicializar dados de membros.

Exemplo 2:Construtor parametrizado 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;
}

Saída
Area of Wall 1: 90.3
Area of Wall 2: 53.55

Aqui, criamos um construtor parametrizado Wall() que tem 2 parâmetros:double len e double hgt . Os valores contidos nestes parâmetros são usados ​​para inicializar as variáveis ​​membro comprimento e altura .

Quando criamos um objeto da classe Wall classe, passamos os valores para as variáveis ​​de membro como argumentos. O código para isso é:
Wall wall1(10.5, 8.6);
Wall wall2(8.5, 6.3);

Com as variáveis ​​de membro assim inicializadas, agora podemos calcular a área da parede com o calculateArea() função.

Construtor de cópia C++


O construtor de cópia em C++ é usado para copiar dados de um objeto para outro.

Exemplo 3:Construtor de cópia 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;
}

Saída
Area of Wall 1: 90.3
Area of Wall 2: 90.3

Neste programa, usamos um construtor de cópia para copiar o conteúdo de um objeto do Wall classe para outra. O código do construtor de cópia é:
Wall(Wall &obj) {
  length = obj.length;
  height = obj.height;
}

Observe que o parâmetro deste construtor tem o endereço de um objeto do Wall classe.

Em seguida, atribuímos os valores das variáveis ​​do obj object para as variáveis ​​correspondentes do objeto chamando o construtor de cópia. É assim que o conteúdo do objeto é copiado.

Em main() , então criamos dois objetos wall1 e parede2 e copie o conteúdo de wall1 para parede2 :
// copy contents of wall1 to wall2
Wall wall2 = wall1;

Aqui, o wall2 objeto chama seu construtor de cópia passando o endereço do wall1 objeto como seu argumento, ou seja, &obj = &wall1 .

Observação :Um construtor é usado principalmente para inicializar objetos. Eles também são usados ​​para executar um código padrão quando um objeto é criado.

Linguagem C

  1. Construtor C#
  2. Sobrecarga do construtor C#
  3. Tipos de dados C++
  4. Operadores C++
  5. Comentários C++
  6. Modelos de classe C++
  7. Construtores Java
  8. Java - Construtores
  9. Visão geral do C++
  10. Constantes/literais C++