Sovraccarico del costruttore C ++ (con esempi)

In questo tutorial, impareremo il sovraccarico del costruttore in C ++ con l'aiuto di esempi.

I costruttori possono essere sovraccaricati in modo simile al sovraccarico di funzioni.

I costruttori sovraccaricati hanno lo stesso nome (nome della classe) ma un diverso numero di argomenti. A seconda del numero e del tipo di argomenti passati, viene chiamato il costruttore corrispondente.

Esempio 1: sovraccarico del costruttore

 // C++ program to demonstrate constructor overloading #include using namespace std; class Person ( private: int age; public: // 1. Constructor with no arguments Person() ( age = 20; ) // 2. Constructor with an argument Person(int a) ( age = a; ) int getAge() ( return age; ) ); int main() ( Person person1, person2(45); cout << "Person1 Age = " << person1.getAge() << endl; cout << "Person2 Age = " << person2.getAge() << endl; return 0; )

Produzione

 Persona1 Età = 20 Persona2 Età = 45

In questo programma abbiamo creato una classe Personche ha un'unica variabile età.

Abbiamo anche definito due costruttori Person()e Person(int a):

  • Quando viene creato l'oggetto person1, viene chiamato il primo costruttore perché non abbiamo passato alcun argomento. Questo costruttore inizializza l'età a 20.
  • Quando viene creato person2, viene chiamato il secondo costruttore poiché abbiamo passato 45come argomento. Questo costruttore inizializza l'età a 45.

La funzione getAge()restituisce il valore di età e lo usiamo per stampare l'età di persona1 e persona2.

Esempio 2: sovraccarico del costruttore

 // C++ program to demonstrate constructor overloading #include using namespace std; class Room ( private: double length; double breadth; public: // 1. Constructor with no arguments Room() ( length = 6.9; breadth = 4.2; ) // 2. Constructor with two arguments Room(double l, double b) ( length = l; breadth = b; ) // 3. Constructor with one argument Room(double len) ( length = len; breadth = 7.2; ) double calculateArea() ( return length * breadth; ) ); int main() ( Room room1, room2(8.2, 6.6), room3(8.2); cout << "When no argument is passed: " << endl; cout << "Area of room = " << room1.calculateArea() << endl; cout << "When (8.2, 6.6) is passed." << endl; cout << "Area of room = " << room2.calculateArea() << endl; cout << "When breadth is fixed to 7.2 and (8.2) is passed:" << endl; cout << "Area of room = " << room3.calculateArea() << endl; return 0; )

Produzione

Quando non viene passato alcun argomento: Area della stanza = 28,98 Quando viene passato (8.2, 6.6). Area della stanza = 54.12 Quando l'ampiezza è fissata a 7.2 e viene superata la (8.2): Area della stanza = 59.04
  • Quando viene creato room1, viene chiamato il primo costruttore. length viene inizializzato a 6.9e breadth viene inizializzato a 4.2.
  • Quando viene creato room2, viene chiamato il secondo costruttore. Abbiamo passato gli argomenti 8.2e 6.6. length viene inizializzato al primo argomento 8.2e breadth viene inizializzato a 6.6.
  • Quando viene creato room3, viene chiamato il terzo costruttore. Abbiamo superato un argomento 8.2. length viene inizializzata sull'argomento 8.2. ampiezza è inizializzata per 7.2impostazione predefinita.

Tutorial consigliato : sovraccarico di funzioni C ++.

Articoli interessanti...