Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++-constructeurs

C++-constructeurs

In deze zelfstudie leren we over de C++-constructor en zijn type met behulp van de helpvoorbeelden.

Een constructor is een speciaal type lidfunctie die automatisch wordt aangeroepen wanneer een object wordt gemaakt.

In C++ heeft een constructor dezelfde naam als die van de klasse en heeft hij geen retourtype. Bijvoorbeeld,

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

Hier de functie Wall() is een constructor van de klasse Wall . Merk op dat de constructor

  • heeft dezelfde naam als de klas,
  • heeft geen retourtype, en
  • is public

C++ standaard constructor

Een constructor zonder parameters staat bekend als een standaardconstructor . In het bovenstaande voorbeeld Wall() is een standaardconstructor.


Voorbeeld 1:C++ standaardconstructor

// 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;
}

Uitvoer

Creating a Wall
Length = 5.5

Hier, wanneer de muur1 object is gemaakt, de Wall() constructeur wordt genoemd. Dit stelt de lengte . in variabele van het object naar 5.5 .

Opmerking: Als we geen constructor in onze klasse hebben gedefinieerd, zal de C++-compiler automatisch een standaardconstructor maken met een lege code en zonder parameters.


C++ geparametriseerde constructor

In C++ staat een constructor met parameters bekend als een geparametriseerde constructor. Dit is de voorkeursmethode om ledengegevens te initialiseren.


Voorbeeld 2:C++ geparametriseerde constructor

// 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;
}

Uitvoer

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

Hier hebben we een geparametriseerde constructor Wall() . gemaakt die 2 parameters heeft:double len en double hgt . De waarden in deze parameters worden gebruikt om de lidvariabelen length . te initialiseren en hoogte .

Wanneer we een object van de Wall . maken klasse, geven we de waarden voor de lidvariabelen door als argumenten. De code hiervoor is:

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

Met de lidvariabelen zo geïnitialiseerd, kunnen we nu de oppervlakte van de muur berekenen met de calculateArea() functie.


C++ Copy Constructor

De kopieerconstructor in C++ wordt gebruikt om gegevens van het ene object naar het andere te kopiëren.


Voorbeeld 3:C++ Copy Constructor

#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;
}

Uitvoer

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

In dit programma hebben we een kopieerconstructor gebruikt om de inhoud van één object van de Wall . te kopiëren klas naar een andere. De code van de kopie-constructor is:

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

Merk op dat de parameter van deze constructor het adres heeft van een object van de Wall klasse.

Vervolgens wijzen we de waarden van de variabelen van de obj . toe object naar de corresponderende variabelen van het object dat de kopie-constructor aanroept. Zo wordt de inhoud van het object gekopieerd.

In main() , we maken dan twee objecten muur1 en muur2 en kopieer vervolgens de inhoud van wall1 naar muur2 :

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

Hier, de muur2 object roept zijn kopie-constructor aan door het adres van de wall1 . door te geven object als zijn argument, d.w.z. &obj = &wall1 .

Opmerking :Een constructor wordt voornamelijk gebruikt om objecten te initialiseren. Ze worden ook gebruikt om een ​​standaardcode uit te voeren wanneer een object wordt gemaakt.


C Taal

  1. C# Constructor
  2. C# Constructor Overbelasting
  3. C++-gegevenstypen
  4. C++-operators
  5. C++ Opmerkingen
  6. C++-klassesjablonen
  7. Java-constructeurs
  8. Java - Constructeurs
  9. C++-overzicht
  10. C++-constanten/letters
  11. Operatoren in C++