0Pricing
C++ Academy · Pelajaran

Pointer this dan Enkapsulasi

Gunakan pointer this dan terapkan enkapsulasi dengan akses private dan public

Pointer this dan Enkapsulasi adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 4 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 this?

Di dalam fungsi anggota non-statis, this adalah penunjuk implisit ke objek saat ini. Gunakan untuk menghilangkan ambiguitas atau mengembalikan referensi.

class Counter {
    int n_ = 0;
public:
    Counter& add(int x) {
        n_ += x;       // implicit this
        return *this;  // chain calls
    }
};

Akses Implisit

Biasanya Anda tidak perlu menulis this->. Nama anggota dicari secara otomatis—this->n_ dan n_ memiliki arti yang sama.

Kapan this-> Diperlukan

Gunakan this-> ketika parameter menutupi nama anggota, atau ketika pencarian templat memerlukan bantuan untuk menemukan anggota yang diwarisi.

class Person {
    std::string name_;
public:
    void setName(const std::string& name) {
        this->name_ = name;  // or name_ = name;
    }
};

Mengembalikan *this untuk Perangkaian

Kembalikan *this untuk mendukung antarmuka yang dapat dirangkai.

class StringBuilder {
    std::string s_;
public:
    StringBuilder& append(const std::string& part) {
        s_ += part;
        return *this;
    }
};

StringBuilder sb;
sb.append("Hello, ").append("World!");

this dalam Metode const

Di dalam metode const, this bertipe const ClassName*. Anda tidak dapat mengubah anggota melalui penunjuk tersebut.

Enkapsulasi: Gagasan Utama

Enkapsulasi berarti menyembunyikan keadaan internal dan hanya menyediakan operasi yang aman. Jadikan data bersifat privat; sediakan metode publik yang memang diperlukan.

class Stack {
    std::vector<int> data_;     // hidden
public:
    void push(int v) { data_.push_back(v); }
    int  pop()       { int v = data_.back(); data_.pop_back(); return v; }
    bool empty() const { return data_.empty(); }
};

Mengapa Melakukan Enkapsulasi?

Enkapsulasi memungkinkan Anda:

  • Mengubah representasi internal tanpa merusak pemanggil
  • Menegakkan invarian di satu tempat
  • Memvalidasi masukan di batas
  • Menganalisis keadaan objek secara lokal

Antarmuka Publik = Kontrak

Antarmuka publik adalah janji kepada pemanggil. Jaga agar tetap minimal, disengaja, dan stabil. Jadikan detail implementasi bersifat privat.

Pengambil dan Penyetel

Ini adalah pola yang umum, tetapi mudah digunakan secara berlebihan. Hindari mencerminkan setiap anggota dengan pengambil/penyetel—hal itu menggagalkan enkapsulasi. Sediakan operasi, bukan bidang data.

Konsistensi const Sekali Lagi

Tandai setiap metode hanya-baca dengan const. Pemanggil dapat mengetahui metode mana yang aman dipanggil pada instans const, dan compiler akan menegakkannya.

Fungsi dan Kelas friend

Kata kunci friend memberikan fungsi atau kelas lain akses ke anggota privat. Gunakan secara terbatas—friend mempererat keterkaitan.

class Account {
    double balance_;
    friend void transfer(Account& a, Account& b, double amount);
};

Pemeriksaan Singkat

Apa tipe this di dalam metode yang dideklarasikan sebagai void f() const pada kelas Foo?

Ringkasan

this menunjuk ke objek saat ini di dalam metode non-statis. Gunakan untuk perangkaian (return *this) dan menghilangkan ambiguitas. Enkapsulasikan keadaan dengan data privat dan antarmuka publik yang kecil serta disengaja.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pointer this dan Enkapsulasi” gratis?

Ya — teks lengkap “Pointer this dan Enkapsulasi” 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 “Pointer this dan Enkapsulasi”?

Gunakan pointer this dan terapkan enkapsulasi dengan akses private dan public 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 4 dari 4.

Berapa lama pelajaran “Pointer this dan Enkapsulasi” 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