Dalam tutorial ini, kita akan belajar mengenai konstruktor C ++ dan jenisnya dengan contoh bantuan.
Pembina adalah jenis fungsi anggota khas yang dipanggil secara automatik semasa objek dibuat.
Dalam C ++, konstruktor mempunyai nama yang sama dengan kelas dan ia tidak mempunyai jenis pengembalian. Sebagai contoh,
class Wall ( public: // create a constructor Wall() ( // code ) );
Di sini, fungsinya Wall()
adalah pembina kelas Wall
. Perhatikan bahawa pembina
- mempunyai nama yang sama dengan kelas,
- tidak mempunyai jenis pengembalian, dan
- adalah
public
Pembina Lalai C ++
Pembina tanpa parameter dikenali sebagai konstruktor lalai . Dalam contoh di atas, Wall()
adalah konstruktor lalai.
Contoh 1: Pembina Lalai 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; )
Pengeluaran:
Membuat Panjang Dinding = 5.5
Di sini, apabila objek wall1 dibuat, Wall()
konstruktor dipanggil. Ini menetapkan pemboleh ubah panjang objek ke 5.5
.
Catatan: Sekiranya kita belum menentukan konstruktor di kelas kita, maka penyusun C ++ secara automatik akan membuat konstruktor lalai dengan kod kosong dan tanpa parameter.
Pembina Parameter C ++
Dalam C ++, konstruktor dengan parameter dikenali sebagai konstruktor parameter. Ini adalah kaedah pilihan untuk menginisialisasi data ahli.
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; )
Pengeluaran:
Kawasan Tembok 1: 90.3 Kawasan Tembok 2: 53.55
Di sini, kami telah membuat konstruktor parameter Wall()
yang mempunyai 2 parameter: double len
dan double hgt
. Nilai yang terkandung dalam parameter ini digunakan untuk menginisialisasi pemboleh ubah anggota panjang dan tinggi.
Apabila kita membuat objek Room
kelas, kita memberikan nilai untuk pemboleh ubah anggota sebagai argumen. Kod untuk ini adalah:
Wall wall1(10.5, 8.6); Wall wall2(8.5, 6.3);
Dengan pemboleh ubah anggota yang diinisialisasi, kita sekarang dapat mengira luas dinding dengan calculateArea()
fungsi.
Pembuat Salin C ++
Pembina salinan dalam C ++ digunakan untuk menyalin data satu objek ke objek lain.
Contoh 3: Pembuat Salin 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; )
Pengeluaran
Kawasan Bilik 1: 90.3 Kawasan Bilik 2: 90.3
Dalam program ini, kami telah menggunakan salinan konstruktor untuk menyalin kandungan satu objek Wall
kelas ke objek yang lain. Kod pembina salinan adalah:
Room(Room &obj) ( length = obj.length; height = obj.height; )
Perhatikan bahawa parameter konstruktor ini mempunyai alamat objek Wall
kelas.
Kami kemudian menetapkan nilai pemboleh ubah objek pertama kepada pemboleh ubah yang sesuai dari objek kedua. Ini adalah bagaimana kandungan objek disalin.
Di main()
, kita kemudian membuat dua objek wall1 dan wall2 dan kemudian menyalin kandungan objek pertama ke objek kedua dengan kod
Wall wall2 = wall1;
Catatan : Pembina digunakan terutamanya untuk menginisialisasi objek. Mereka juga digunakan untuk menjalankan kod lalai ketika objek dibuat.