C ++ Constructors: Jenis dan Salin Konstruktor

Dalam tutorial ini, kita akan belajar tentang konstruktor C ++ dan tipenya dengan contoh bantuan.

Konstruktor adalah tipe khusus dari fungsi anggota yang dipanggil secara otomatis ketika sebuah objek dibuat.

Dalam C ++, konstruktor memiliki nama yang sama dengan kelas dan tidak memiliki tipe kembalian. Sebagai contoh,

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

Di sini, fungsinya Wall()adalah konstruktor kelas Wall. Perhatikan bahwa konstruktor

  • memiliki nama yang sama dengan kelasnya,
  • tidak memiliki tipe pengembalian, dan
  • aku s public

Pembuat Default C ++

Konstruktor tanpa parameter dikenal sebagai konstruktor default . Dalam contoh di atas, Wall()adalah konstruktor default.

Contoh 1: Pembuat Default C ++

 // C++ program to demonstrate the use of default constructor #include using namespace std; // declare a class class Wall ( private: double length; public: // create a constructor Wall() ( // initialize private variables length = 5.5; cout << "Creating a wall." << endl; cout << "Length = " << length << endl; ) ); int main() ( // create an object Wall wall1; return 0; )

Keluaran:

 Membuat Panjang Dinding = 5.5

Di sini, ketika objek wall1 dibuat, Wall()konstruktor dipanggil. Ini menetapkan variabel panjang objek ke 5.5.

Catatan: Jika kita belum mendefinisikan konstruktor di kelas kita, maka compiler C ++ secara otomatis akan membuat konstruktor default dengan kode kosong dan tanpa parameter.

C ++ Parameterized Constructor

Dalam C ++, konstruktor dengan parameter dikenal sebagai konstruktor berparameter. Ini adalah metode yang disukai untuk menginisialisasi data anggota.

Contoh 2: C ++ Parameterized Constructor

 // C++ program to calculate the area of a wall #include using namespace std; // declare a class class Wall ( private: double length; double height; public: // create parameterized constructor Wall(double len, double hgt) ( // initialize private variables 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() << endl; return 0; )

Keluaran:

 Luas Dinding 1: 90.3 Luas Dinding 2: 53.55

Di sini, kami telah membuat konstruktor berparameter Wall()yang memiliki 2 parameter: double lendan double hgt. Nilai-nilai yang terkandung dalam parameter ini digunakan untuk menginisialisasi panjang dan tinggi variabel anggota.

Saat kami membuat objek Roomkelas, kami meneruskan nilai untuk variabel anggota sebagai argumen. Kode untuk ini adalah:

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

Dengan variabel anggota yang diinisialisasi, sekarang kita dapat menghitung luas dinding dengan calculateArea()fungsi tersebut.

Pembuat Salinan C ++

Konstruktor salinan di C ++ digunakan untuk menyalin data dari satu objek ke objek lainnya.

Contoh 3: Pembuat Salinan C ++

 #include using namespace std; // declare a class class Wall ( private: double length; double height; public: // parameterized constructor Wall(double len, double hgt) ( // initialize private variables length = len; height = hgt; ) // copy constructor with a Wall object as parameter Wall(Wall &obj) ( // initialize private variables 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); // print area of wall1 cout << "Area of Room 1: " << wall1.calculateArea() << endl; // copy contents of room1 to another object room2 Wall wall2 = wall1; // print area of wall2 cout << "Area of Room 2: " << wall2.calculateArea() << endl; return 0; )

Keluaran

 Luas Kamar 1: 90.3 Luas Kamar 2: 90.3

Dalam program ini, kami telah menggunakan konstruktor salinan untuk menyalin konten dari satu objek Wallkelas ke objek lain. Kode dari konstruktor salinan adalah:

 Room(Room &obj) ( length = obj.length; height = obj.height; )

Perhatikan bahwa parameter konstruktor ini memiliki alamat dari sebuah objek Wallkelas.

Kami kemudian menetapkan nilai variabel dari objek pertama ke variabel yang sesuai dari objek kedua. Beginilah cara konten objek disalin.

Di main(), kita kemudian membuat dua objek wall1 dan wall2 dan kemudian menyalin isi objek pertama ke objek kedua dengan kode

 Wall wall2 = wall1;

Catatan : Konstruktor terutama digunakan untuk menginisialisasi objek. Mereka juga digunakan untuk menjalankan kode default ketika sebuah objek dibuat.

Artikel yang menarik...