C ++ Yapıcı Aşırı Yüklemesi (Örneklerle)

Bu öğreticide, örnekler yardımıyla C ++ 'da yapıcı aşırı yüklemesini öğreneceğiz.

Oluşturucular, işlev aşırı yüklemesine benzer şekilde aşırı yüklenebilir.

Aşırı yüklenmiş kurucular aynı ada (sınıfın adı) ancak farklı sayıda bağımsız değişkene sahiptir. Aktarılan argümanların sayısına ve türüne bağlı olarak, karşılık gelen kurucu çağrılır.

Örnek 1: Yapıcıya aşırı yükleme

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

Çıktı

 Kişi1 Yaş = 20 Kişi2 Yaş = 45

Bu programda Personyaşı tek değişken olan bir sınıf oluşturduk .

Ayrıca iki kurucu tanımladık Person()ve Person(int a):

  • Person1 nesnesi oluşturulduğunda, herhangi bir argüman iletmediğimiz için ilk kurucu çağrılır. Bu kurucu, yaşı olarak başlatır 20.
  • Person2 oluşturulduğunda, 45argüman olarak geçtiğimiz için ikinci kurucu çağrılır . Bu kurucu, yaşı olarak başlatır 45.

İşlev getAge()yaş değerini döndürür ve bunu kişi1 ve kişi2'nin yaşını yazdırmak için kullanırız.

Örnek 2: Yapıcıya aşırı yükleme

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

Çıktı

Hiçbir argüman iletilmediğinde: Oda alanı = 28.98 (8.2, 6.6) geçildiğinde. Oda alanı = 54.12 Genişlik 7.2'ye sabitlendiğinde ve (8.2) geçildiğinde: Oda alanı = 59.04
  • Room1 oluşturulduğunda, ilk kurucu çağrılır. uzunluk olarak başlatılır 6.9ve genişlik olarak başlatılır 4.2.
  • Room2 oluşturulduğunda, ikinci kurucu çağrılır. Argümanları geçtik 8.2ve 6.6. uzunluk ilk bağımsız değişkene 8.2ve genişlik olarak ilklendirilir 6.6.
  • Room3 oluşturulduğunda, üçüncü kurucu çağrılır. Bir argüman geçtik 8.2. uzunluk, bağımsız değişken olarak başlatılır 8.2. genişlik 7.2varsayılan olarak başlatılır .

Önerilen Eğitim : C ++ İşlev Aşırı Yüklemesi.

Ilginç makaleler...