C++ constructors: default, parameterized en copy constructors uitgelegd
C++ Constructors Begrijpen
Deze tutorial duikt in C++ constructors – wat ze zijn, waarom ze ertoe doen, en hoe je default, parameterized en copy constructors implementeert met duidelijke voorbeelden.
Een constructor is een speciale member functie die automatisch draait wanneer een object geïnstantieerd wordt. In C++ deelt de constructor zijn naam met de klasse en specificeert geen return type.
class Wall { public: // Constructor Wall() { // initialization code } };
De constructor moet:
- Deze naam hebben als de klasse.
- Geen return type declareren.
- Toegankelijk zijn (typisch
public).
Default Constructor
Een constructor zonder parameters heet een default constructor. Het Wall() voorbeeld hierboven is er eentje.
Voorbeeld 1: Default Constructor
// Een default constructor demonstreren #include <iostream> using namespace std; class Wall { private: double length; public: // Default constructor Wall() { length = 5.5; cout << "Creating a wall." << endl; cout << "Length = " << length << endl; } }; int main() { Wall wall1; return 0; }
Output
Creating a Wall Length = 5.5
Wanneer wall1 geïnstantieerd wordt, stelt de default constructor length in op 5.5 en print de boodschappen.
Let op: Als een klasse geen expliciete constructor heeft, genereert de compiler automatisch een default constructor die niets doet.
Parameterized Constructor
Parameterized constructors ontvangen argumenten om member data bij objectcreatie te initialiseren. Ze zijn de voorkeursmanier om de staat van een object in te stellen.
Voorbeeld 2: Parameterized Constructor
// Oppervlakte van een muur berekenen met een parameterized constructor #include <iostream> using namespace std; class Wall { private: double length; double height; public: // Parameterized constructor Wall(double len, double hgt) { length = len; height = hgt; } double calculateArea() { return length * height; } }; int main() { 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; }
Output
Area of Wall 1: 90.3 Area of Wall 2: 53.55
De constructor wijst de doorgegeven waarden toe aan length en height, wat calculateArea() in staat stelt de oppervlakte van de muur te berekenen.
Copy Constructor
Een copy constructor creëert een nieuw object als exacte kopie van een bestaand object. Het wordt aangeroepen wanneer een object geïnitialiseerd wordt vanuit een ander van hetzelfde type.
Voorbeeld 3: Copy Constructor
#include <iostream> using namespace std; class Wall { private: double length; double height; public: // Parameterized constructor Wall(double len, double hgt) { length = len; height = hgt; } // Copy constructor Wall(Wall &obj) { length = obj.length; height = obj.height; } double calculateArea() { return length * height; } }; int main() { Wall wall1(10.5, 8.6); Wall wall2 = wall1; // Roept copy constructor aan cout << "Area of Wall 1: " << wall1.calculateArea() << endl; cout << "Area of Wall 2: " << wall2.calculateArea(); return 0; }
Output
Area of Wall 1: 90.3 Area of Wall 2: 90.3
De copy constructor kopieert length en height van wall1 naar wall2, wat zorgt dat beide objecten identieke staat hebben.
Let op: Constructors initialiseren primair objecten, maar stellen ook custom logica in tijdens objectcreatie.
C Taal
- C# Constructors: Types, Voorbeelden en Geavanceerde Patronen
- Constructor overloading in C#: flexibele klassen ontwerpen
- C++ datatypes begrijpen: fundamentals, modifiers en best practices
- C++ operators: complete gids met praktische voorbeelden
- C++ comments: best practices voor leesbare, onderhoudbare code
- C++ Class Templates Beheersen: Een Praktische Gids
- C++ Programmeertaal: Overzicht & Belangrijkste Kenmerken
- C++ Constanten & Literals Uitgelegd: Types, Syntax en Best Practices
- Uitgebreide Gids voor C++ Operators: Types, Gebruik en Best Practices
- Java-constructors beheersen: typen, gebruik en praktische voorbeelden
- Java Constructors Begrijpen: Initialisatie en Best Practices