0Pricing
C++ Academy · Pelajaran

Fungsi Anggota const

Tandai metode hanya-baca

Fungsi Anggota const adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Pengertian Fungsi Anggota const

Fungsi anggota yang ditandai const menjamin bahwa fungsi tersebut tidak mengubah keadaan objek yang dapat diamati. Kata kuncinya diletakkan setelah daftar parameter.

#include <iostream>

class Counter {
    int n = 0;
public:
    int value() const { return n; }   // read-only
    void inc() { ++n; }
};

int main() {
    Counter c;
    c.inc();
    std::cout << c.value() << "\n";
}

Objek const Memanggil Metode const

Pada objek const, Anda hanya dapat memanggil fungsi anggota const. Metode non-const dilarang.

#include <iostream>

class Counter {
    int n = 0;
public:
    int value() const { return n; }
    void inc() { ++n; }
};

int main() {
    const Counter c;
    std::cout << c.value() << "\n";   // OK
    // c.inc();                        // ERROR
}

this Menjadi const

Di dalam fungsi anggota const, this adalah penunjuk ke const, sehingga kompiler menolak setiap upaya untuk mengubah anggota.

Tandai Semua Metode Hanya-Baca sebagai const

Fungsi pengambil, kueri, dan pencetak sebaiknya semuanya diberi const. Dengan demikian, fungsi-fungsi tersebut dapat bekerja pada objek const dan referensi const.

Pemuatan Berlebih const

Anda dapat menyediakan versi const dan non-const dari sebuah metode; kompiler memilihnya berdasarkan apakah objeknya const.

#include <iostream>
#include <vector>

class Box {
    std::vector<int> v{1, 2, 3};
public:
    int& at(int i) { return v[i]; }              // mutable access
    const int& at(int i) const { return v[i]; }  // read-only access
};

int main() {
    Box b;
    b.at(0) = 99;
    std::cout << b.at(0) << "\n";
}

Kata Kunci mutable

Anggota mutable dapat berubah bahkan di dalam metode const—berguna untuk tembolok atau penghitung yang bukan bagian dari keadaan logis.

#include <iostream>

class Cache {
    mutable int hits = 0;
    int data = 42;
public:
    int get() const { ++hits; return data; }   // hits is mutable
    int hitCount() const { return hits; }
};

int main() {
    Cache c;
    c.get(); c.get();
    std::cout << c.hitCount() << "\n";
}

const Logis vs Fisik

const melindungi keadaan logis objek; mutable memungkinkan detail implementasi seperti tembolok berubah tanpa melanggar jaminan tersebut.

Metode const dan Referensi const

Fungsi yang menerima const& hanya dapat memanggil metode const pada objek tersebut—alasan lain untuk menandai fungsi kueri sebagai const.

#include <iostream>

class Counter {
    int n = 5;
public:
    int value() const { return n; }
};

void report(const Counter& c) {
    std::cout << c.value() << "\n";   // needs value() to be const
}

int main() { Counter c; report(c); }

Mengembalikan Referensi const

Fungsi pengakses const sering mengembalikan const& untuk mengekspos anggota tanpa mengizinkan perubahan atau penyalinan.

Jangan Menghilangkan const dengan Konversi

Menggunakan const_cast untuk mengubah objek yang benar-benar const menghasilkan perilaku tak terdefinisi. Gunakan mutable untuk pengecualian yang sah.

Kelas yang Konsisten dengan const

Kelas yang dirancang dengan baik menandai setiap metode yang tidak mengubah keadaan sebagai const, sehingga kelas tersebut dapat bekerja dengan lancar dalam konteks const di seluruh program.

Pemeriksaan Singkat

Uji pemahaman Anda tentang fungsi anggota const.

Rangkuman

Anda telah mempelajari cara menandai metode hanya-baca sebagai const, bahwa objek const hanya memanggil metode const, cara melakukan pemuatan berlebih berdasarkan const, serta cara mutable memungkinkan perubahan detail implementasi. Hindari const_cast; rancang kelas yang konsisten dengan const sejak awal.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Fungsi Anggota const” gratis?

Ya — teks lengkap “Fungsi Anggota const” 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 “Fungsi Anggota const”?

Tandai metode hanya-baca 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 2 dari 4.

Berapa lama pelajaran “Fungsi Anggota const” 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. Variabel dan Parameter const
  2. Fungsi Anggota const
  3. constexpr dan Waktu Kompilasi
  4. consteval dan constinit
← Kembali ke C++ Academy