C ++ Constructor Overloading (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang konstruktor overloading dalam C ++ dengan bantuan contoh.

Konstruktor dapat kelebihan beban dengan cara yang sama seperti kelebihan beban fungsi.

Konstruktor yang kelebihan beban memiliki nama yang sama (nama kelas) tetapi jumlah argumennya berbeda. Bergantung pada jumlah dan jenis argumen yang diteruskan, konstruktor yang sesuai akan dipanggil.

Contoh 1: Constructor overloading

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

Keluaran

 Orang1 Usia = 20 Orang2 Usia = 45

Dalam program ini, kami telah membuat kelas Personyang memiliki usia variabel tunggal.

Kami juga telah mendefinisikan dua konstruktor Person()dan Person(int a):

  • Ketika objek person1 dibuat, konstruktor pertama dipanggil karena kita belum memberikan argumen apa pun. Konstruktor ini menginisialisasi age menjadi 20.
  • Ketika person2 dibuat, konstruktor kedua dipanggil karena kita telah memberikan 45argumen. Konstruktor ini menginisialisasi age menjadi 45.

Fungsi getAge()mengembalikan nilai usia, dan kami menggunakannya untuk mencetak usia person1 dan person2.

Contoh 2: Constructor overloading

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

Keluaran

Ketika tidak ada argumen yang diberikan: Luas ruangan = 28,98 Ketika (8,2, 6,6) diloloskan. Luas ruangan = 54,12 Jika lebarnya ditetapkan menjadi 7,2 dan (8,2) dilewati: Luas ruangan = 59,04
  • Ketika ruang1 dibuat, konstruktor pertama dipanggil. length diinisialisasi 6.9dan luasnya diinisialisasi 4.2.
  • Ketika ruang2 dibuat, konstruktor kedua dipanggil. Kami telah melewati argumen 8.2dan 6.6. length diinisialisasi ke argumen pertama 8.2dan luasnya diinisialisasi 6.6.
  • Ketika room3 dibuat, konstruktor ketiga dipanggil. Kami telah melewati satu argumen 8.2. length diinisialisasi ke argumen 8.2. luasnya diinisialisasi ke 7.2secara default.

Tutorial yang Disarankan : Overloading Fungsi C ++.

Artikel yang menarik...