C++ Constructor Initializer List Order

3 min read Jul 01, 2024
C++ Constructor Initializer List Order

C++ Constructor Initializer List Order

Dalam C++, constructor initializer list digunakan untuk menginisialisasi anggota data sebuah kelas sebelum badan konstruktor dieksekusi. Urutan inisialisasi dalam daftar inisialisasi konstruktor sangat penting dan mengikuti aturan tertentu.

Urutan Inisialisasi:

  1. Urutan Deklarasi: Anggota data diinisialisasi dalam urutan deklarasi mereka di kelas.
  2. Order Initializer List: Urutan inisialisasi dalam daftar inisialisasi konstruktor menentukan urutan di mana anggota data diinisialisasi.
  3. Default Initialization: Jika anggota data tidak diinisialisasi secara eksplisit dalam daftar inisialisasi, mereka diinisialisasi dengan nilai default mereka.

Contoh:

#include 

class MyClass {
public:
    MyClass(int a, int b, int c) : x(a), y(b), z(c) {
        std::cout << "Constructor body" << std::endl; 
    }
private:
    int x;
    int y;
    int z;
};

int main() {
    MyClass obj(1, 2, 3);
    return 0;
}

Dalam contoh di atas:

  1. x diinisialisasi dengan 1 pertama.
  2. y diinisialisasi dengan 2 berikutnya.
  3. z diinisialisasi dengan 3 terakhir.
  4. Setelah itu, badan konstruktor dieksekusi, mencetak "Constructor body".

Pentingnya Urutan Inisialisasi:

  • Ketergantungan: Jika anggota data saling bergantung, mereka harus diinisialisasi dalam urutan yang benar. Misalnya, jika anggota data a bergantung pada b, b harus diinisialisasi sebelum a.
  • Penghindaran Error: Urutan inisialisasi yang tidak benar dapat menyebabkan error runtime atau perilaku yang tidak terduga.
  • Kode yang Lebih Terstruktur: Menggunakan daftar inisialisasi konstruktor membantu membuat kode lebih terstruktur dan mudah dipahami.

Kesimpulan:

Mengerti urutan inisialisasi dalam daftar inisialisasi konstruktor sangat penting dalam C++. Ini memungkinkan Anda untuk menginisialisasi anggota data dengan benar dan menghindari error yang tidak diinginkan. Selalu perhatikan urutan deklarasi anggota data dan urutan inisialisasi dalam daftar inisialisasi untuk memastikan inisialisasi yang benar.