Konstruktor C++:Menggunakan Argumen Default untuk Pembuatan Objek Fleksibel
Konstruktor adalah fungsi anggota khusus dalam suatu kelas, yang secara otomatis dipanggil ketika suatu objek dibuat. Ini digunakan untuk menginisialisasi objek dengan nilai atau pengaturan default.
Sedangkan argumen default di C++ memungkinkan untuk menentukan nilai default untuk parameter fungsi atau konstruktor.
Konstruktor dengan Argumen Default
Konstruktor dengan argumen default adalah konstruktor yang memungkinkan pembuatan objek menggunakan parameter opsional. Dimana nilai default untuk parameter disediakan, sehingga ketika pengguna tidak memberikan nilai apa pun, nilai default akan digunakan.
Sintaks
Berikut adalah sintaks yang diberikan untuk konstruktor dengan argumen default:
class ClassName {
public:
ClassName(parameter_Type parameter_Name = default_Value,
parameter_Type2 parameter_Name2 = default_Value2);
};
- Di sini, konstruktor memiliki nama yang sama dengan kelas
- Nilai default diberikan untuk satu atau beberapa parameter.
- Jika tidak ada nilai yang diberikan oleh pengguna, maka nilai default ini akan digunakan.
Contoh Konstruktor dengan Argumen Default
Berikut adalah contoh konstruktor dengan argumen default berikut:
#include <iostream>
using namespace std;
// Function with a default argument
void printMessage(string message = "Hello, Tutorialspoint Learner") {
cout << message << endl;
}
int main() {
// Calling the function without an argument
printMessage(); // Prints the default message: "Hello, World!"
// Calling the function with a custom argument
printMessage("Hi, there!"); // Prints the custom message: "Hi, there!"
return 0;
}
Keluaran
Hello, Tutorialspoint Learner
Hi, there!
Penjelasan
- Fungsi printMessage() dibuat, memberikan parameter nilai default "Halo, Pembelajar Tutorialspoint".
- Sekarang di main(), printMessage() fungsi dipanggil tanpa argumen apa pun, sehingga argumen default "Halo, Tutorialspoint Learner" digunakan.
- sedangkan di printMessage("Hai, ini!") , kami secara eksplisit meneruskan nilai "Hai!" jadi ini akan mengesampingkan argumen default.
Konstruktor dengan Banyak Argumen Default
Konstruktor dengan beberapa argumen default memberi pengguna akses untuk menentukan nilai default untuk lebih dari satu parameter. Hal ini memberikan lebih banyak fleksibilitas dan akses untuk meneruskan kombinasi argumen apa pun.
Contoh
Berikut adalah contoh berikut untuk konstruktor dengan beberapa argumen default:
#include <iostream>
using namespace std;
class Box {
public:
int length, width, height;
// Constructor with multiple default arguments
Box(int l = 5, int w = 10, int h = 2) { // Default values for length, width, and height
length = l;
width = w;
height = h;
}
void display() {
cout << "Length: " << length << ", Width: " << width << ", Height: " << height << endl;
}
};
int main() {
// Creating objects with different numbers of arguments
Box box1;
Box box2(15);
Box box3(15, 20);
Box box4(15, 20, 25);
// Displaying the objects' values
box1.display();
box2.display();
box3.display();
box4.display();
return 0;
}
Keluaran
Length: 5, Width: 10, Height: 2
Length: 15, Width: 10, Height: 2
Length: 15, Width: 20, Height: 2
Length: 15, Width: 20, Height: 25
Penjelasan
- Pertama, kotak kelas didefinisikan dengan tiga variabel anggota publik:panjang dan lebar, di mana konstruktornya Kotak(int l =5, int w =10, int h =2) memiliki argumen default untuk ketiga parameter.
- Dalam objek Kotak kotak1; tidak ada argumen yang diberikan, sehingga konstruktor default dipanggil dengan nilai default, sehingga menghasilkan "Panjang:5, Lebar:10, Tinggi:2".
- Dalam Kotak kotak2(15); panjang disediakan 15, tetapi lebar dan tinggi tidak disediakan, Jadi menggunakan nilai default masing-masing.
- Dalam Kotak kotak3(15, 20); panjang dan lebar masing-masing diberikan nilai 15 dan 20, sehingga akan menggantikan nilai default dan hasilnya sesuai.
Fitur Utama Konstruktor dengan Argumen Default
Meskipun mirip dengan fungsi biasa, fungsi ini memberikan lebih banyak fleksibilitas dan kenyamanan saat membuat objek.
Berikut ini, kita akan membahas semua fitur utamanya.
1. Nilai default untuk parameter dan fleksibilitas dalam pembuatan objek
Di sini konstruktor dapat memiliki nilai default untuk satu atau beberapa parameter, yang dapat digunakan ketika tidak ada argumen yang diberikan oleh pemanggil dan memungkinkan berbagai cara untuk membuat objek.
2. Menghindari kelebihan beban beberapa konstruktor
Anda mungkin perlu memuat konstruktor untuk setiap kombinasi argumen, yang akan membuat kode menjadi lebih besar, namun dengan argumen default, konstruktor dapat ditulis satu kali dan akan menangani kasus yang berbeda secara otomatis.
3. Urutan Argumen Default
Dalam kasus beberapa parameter nilai default, Anda tidak dapat melewatkan argumen default di tengah setelah Anda mulai memberikan default dari kanan.
Sintaks
Box(int l = 1, int w); // Invalid: 'w' has no default, but 'l' does.
4. Argumen Default Dapat Digunakan dengan Anggota Const
Jika kelas Anda memiliki anggota const, maka argumen default dapat disediakan di konstruktor untuk mempermudah inisialisasi.
Sintaks
class Box {
public:
const int length, width;
Box(int l = 5, int w = 10) : length(l), width(w) {}
};
Konstruktor ini menggunakan argumen default (panjang =5 dan lebar =10) untuk menginisialisasi anggota const.