0Pricing
C++ Academy · Pelajaran

Referensi const dan Kapan Menggunakannya

Teruskan objek besar secara efisien dan aman dengan referensi const

Referensi const dan Kapan Menggunakannya 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.

Jaminan yang Diberikan Referensi Const

const T& berarti: "Saya tidak akan mengubah objek yang saya rujuk." Kompilator akan menegakkannya.

void print(const std::string& s) {
    // s.clear();   // ERROR: s is const
    std::cout << s;
}

Mengapa Tidak Langsung Meneruskan Berdasarkan Nilai?

Menyalin objek besar merupakan pemborosan. Referensi const pada dasarnya tidak memerlukan biaya berarti karena hanya berupa pointer di balik layar, dan tidak pernah memungkinkan fungsi mengubah data pemanggil.

Dapat Mengikat Apa Saja

Referensi const dapat mengikat nilai-l, nilai-r, dan objek sementara—menjadikannya tipe parameter yang paling fleksibel untuk akses hanya-baca.

void f(const std::string& s);
std::string a = "hi";
f(a);                 // lvalue
f("hello");           // temporary string
f(std::move(a));      // rvalue

Perpanjangan Masa Hidup

Mengikat objek sementara ke referensi const memperpanjang masa hidup objek sementara hingga masa hidup referensi tersebut. Berguna untuk pembuatan secara langsung.

const std::string& greeting = "Hello, " + name;
// the concatenated string lives as long as `greeting`

Kapan NOT Menggunakan Referensi Const

Untuk tipe yang dapat disalin secara sederhana (int, double, pointer), teruskan berdasarkan nilai. Referensi menambahkan pengacuan tidak langsung tanpa memberikan manfaat apa pun.

Referensi Const dalam for Berbasis Rentang

Perulangan baku untuk membaca saja. Hindari penyalinan sekaligus perubahan yang tidak disengaja.

for (const auto& x : container) {
    process(x);
}

Pengembalian Berdasarkan Referensi Const

Kembalikan referensi const ketika hasilnya merupakan objek yang sudah ada dan tidak boleh diubah oleh pemanggil, misalnya anggota atau nilai yang disimpan sementara.

class Person {
    std::string name_;
public:
    const std::string& name() const { return name_; }
};

Ketepatan Const

Tandai setiap parameter dan fungsi anggota yang tidak mengubah keadaan sebagai const. Kompilator akan mendeteksi penulisan yang tidak disengaja—sebuah jaring pengaman yang kuat.

Fungsi Anggota Const

Fungsi anggota yang ditandai const setelah daftar parameter tidak dapat mengubah objek. Fungsi ini dipanggil pada instans const.

class Counter {
    int n_ = 0;
public:
    int value() const { return n_; }   // pure reader
    void increment() { n_++; }
};

Jebakan: const_cast Menghapus Const

Anda dapat menghapus const dengan const_cast—tetapi melakukannya pada objek yang sejak awal const merupakan perilaku yang tidak terdefinisi. Gunakan cara ini hanya saat berinteraksi dengan API lama yang non-const.

Mutable untuk Keadaan Internal

Kata kunci mutable memungkinkan fungsi anggota const mengubah anggota tertentu—berguna untuk cache atau mutex.

class Cache {
    mutable std::mutex mtx_;
    mutable std::optional<int> cached_;
public:
    int value() const {
        std::lock_guard<std::mutex> lk(mtx_);
        // ...
    }
};

Pemeriksaan Singkat

Mengapa biasanya lebih baik menulis const std::string& daripada std::string untuk sebuah parameter?

Rangkuman

Gunakan const T& untuk parameter hanya-baca, nilai pengembalian dari pengambil, dan perulangan berbasis rentang. Untuk tipe yang tidak sepele, cara ini lebih cepat daripada penerusan berdasarkan nilai dan lebih aman daripada referensi non-const.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Referensi const dan Kapan Menggunakannya” gratis?

Ya — teks lengkap “Referensi const dan Kapan Menggunakannya” 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 “Referensi const dan Kapan Menggunakannya”?

Teruskan objek besar secara efisien dan aman dengan referensi const 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 “Referensi const dan Kapan Menggunakannya” 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. Mengapa Referensi Menjadi Alias bagi Variabel
  2. Pass-by-Value vs Pass-by-Reference
  3. Referensi const dan Kapan Menggunakannya
  4. Masa Hidup Referensi dan Referensi Menggantung
← Kembali ke C++ Academy