0Pricing
C++ Academy · Pelajaran

Konstruktor dan Daftar Inisialisasi Anggota

Inisialisasi anggota dengan rapi menggunakan daftar inisialisasi anggota

Konstruktor dan Daftar Inisialisasi Anggota adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.

Apa Itu Konstruktor?

Konstruktor adalah metode khusus yang dijalankan saat objek dibuat. Konstruktor memiliki nama yang sama dengan kelas dan tidak memiliki tipe pengembalian.

class Point {
public:
    Point() {              // default constructor
        x_ = 0;
        y_ = 0;
    }
private:
    int x_, y_;
};

Konstruktor Berparameter

Konstruktor dapat menerima parameter dan Anda dapat memiliki beberapa kelebihan beban.

class Point {
    int x_, y_;
public:
    Point() : x_(0), y_(0) {}
    Point(int x, int y) : x_(x), y_(y) {}
};

Daftar Penginisialisasi Anggota

Sintaks : member(value) sebelum badan adalah daftar inisialisasi anggota. Anggota diinisialisasi di sini—bukan ditetapkan kemudian di dalam badan.

class Person {
    std::string name_;
    int age_;
public:
    Person(std::string n, int a) : name_(std::move(n)), age_(a) {}
};

Mengapa Menggunakan Daftar Inisialisasi?

Anggota dibangun tepat satu kali dengan nilai yang benar. Tanpa daftar tersebut, anggota dibangun dengan konstruktor bawaan lalu diberi nilai—boros untuk tipe yang tidak sederhana.

Urutan Inisialisasi

Anggota diinisialisasi sesuai urutan deklarasinya di dalam kelas—bukan sesuai urutan dalam daftar inisialisasi. Samakan urutannya agar tidak membingungkan.

Inisialisasi Bawaan di Dalam Kelas (C++11)

Anda dapat memberikan nilai bawaan kepada anggota secara langsung di dalam badan kelas. Ini berguna ketika sebagian besar konstruktor menggunakan nilai bawaan yang sama.

class Buffer {
    size_t size_ = 0;
    char* data_ = nullptr;
public:
    Buffer() = default;
    Buffer(size_t n) : size_(n), data_(new char[n]) {}
};

= default dan = delete

Minta compiler menyediakan atau menghapus anggota khusus:

class Widget {
public:
    Widget() = default;          // compiler-generated default
    Widget(const Widget&) = delete;  // disable copy
};

Konstruktor Delegasi (C++11)

Sebuah konstruktor dapat memanggil konstruktor lain dari kelas yang sama untuk berbagi logika inisialisasi.

class Box {
    int w_, h_, d_;
public:
    Box(int w, int h, int d) : w_(w), h_(h), d_(d) {}
    Box() : Box(1, 1, 1) {}      // delegates to the 3-arg ctor
};

Konstruktor Eksplisit

Konstruktor dengan satu argumen dapat digunakan dalam konversi implisit. Tandai dengan explicit untuk mencegah konversi yang tidak terduga.

class Vector {
public:
    explicit Vector(size_t n);
};
Vector v = 10;          // ERROR: explicit prevents this
Vector v(10);            // OK

Destruktor

Destruktor ~ClassName() dijalankan ketika sebuah objek dihancurkan. Gunakan untuk melepaskan sumber daya (berkas, soket, memori mentah).

Aturan Lima (Pratinjau Singkat)

Jika Anda menulis salah satu fungsi anggota khusus (destruktor, konstruktor penyalinan, penetapan penyalinan, konstruktor pemindahan, penetapan pemindahan), pikirkan kelimanya. Materi ini dibahas dalam kursus semantik pemindahan.

Pemeriksaan Singkat

Apa yang menentukan urutan inisialisasi anggota kelas?

Ringkasan

Gunakan konstruktor untuk menetapkan keadaan objek. Utamakan daftar inisialisasi anggota daripada penetapan di dalam badan. Tandai konstruktor dengan satu argumen sebagai explicit, dan gunakan = default / = delete untuk menyampaikan maksud.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Konstruktor dan Daftar Inisialisasi Anggota” gratis?

Ya — teks lengkap “Konstruktor dan Daftar Inisialisasi Anggota” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Konstruktor dan Daftar Inisialisasi Anggota”?

Inisialisasi anggota dengan rapi menggunakan daftar inisialisasi anggota Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C++ Academy?

Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Konstruktor dan Daftar Inisialisasi Anggota” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?

Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. struct vs class: Kapan Menggunakan Masing-Masing
  2. Variabel Anggota dan Metode
  3. Konstruktor dan Daftar Inisialisasi Anggota
  4. Pointer this dan Enkapsulasi
← Kembali ke C++ Academy