C++ Call Member Function In Constructor Initialization List

3 min read Jul 01, 2024
C++ Call Member Function In Constructor Initialization List

Memanggil Fungsi Anggota dalam Daftar Inisialisasi Konstruktor C++

Dalam C++, kita dapat menginisialisasi anggota data kelas dalam daftar inisialisasi konstruktor. Namun, tahukah Anda bahwa kita juga dapat memanggil fungsi anggota di dalamnya?

Apa itu Daftar Inisialisasi Konstruktor?

Daftar inisialisasi konstruktor adalah bagian dari konstruktor yang memungkinkan kita untuk menginisialisasi anggota data kelas secara langsung.

Contoh:

class MyClass {
public:
  int x;
  int y;

  MyClass(int a, int b) : x(a), y(b) {} // inisialisasi x dan y dalam daftar inisialisasi
};

Memanggil Fungsi Anggota

Untuk memanggil fungsi anggota di dalam daftar inisialisasi konstruktor, kita perlu menggunakan nama objek (dalam hal ini this) diikuti dengan operator titik (.) dan nama fungsi anggota.

Contoh:

class MyClass {
public:
  int x;
  int y;

  void setValues(int a, int b) { 
    x = a;
    y = b;
  }

  MyClass(int a, int b) : this->setValues(a, b) {} // memanggil setValues() dalam daftar inisialisasi
};

Dalam contoh ini, konstruktor MyClass memanggil fungsi anggota setValues() untuk menginisialisasi anggota data x dan y.

Keuntungan:

  • Keamanan: Memanggil fungsi anggota dalam daftar inisialisasi konstruktor membantu kita memastikan bahwa semua anggota data diinisialisasi dengan benar sebelum konstruktor selesai.
  • Kejelasan: Menyatukan inisialisasi anggota data dan logika inisialisasi lainnya meningkatkan keterbacaan kode.
  • Efisiensi: Pemanggilan fungsi anggota secara langsung dalam daftar inisialisasi konstruktor dapat meningkatkan efisiensi dalam beberapa kasus, terutama jika fungsi anggota tersebut melakukan operasi yang kompleks.

Catatan:

  • Kita harus menggunakan this-> untuk mengakses fungsi anggota dalam daftar inisialisasi konstruktor.
  • Fungsi anggota yang dipanggil dalam daftar inisialisasi konstruktor harus bersifat publik.
  • Kita tidak dapat memanggil fungsi anggota yang membutuhkan objek lain sebagai argumen, karena objek belum sepenuhnya dibangun.

Kapan Menggunakannya?

Memanggil fungsi anggota dalam daftar inisialisasi konstruktor sangat berguna ketika kita ingin melakukan inisialisasi yang kompleks, seperti:

  • Mengisi struktur data (vector, list, dll.)
  • Melakukan operasi validasi data
  • Menghitung nilai anggota data

Dengan menggunakan teknik ini, kita dapat membuat konstruktor kelas lebih terstruktur, mudah dibaca, dan efisien.