0Pricing
C++ Academy · Pelajaran

Kapan Menggunakan Pointer vs Referensi

Pilih pointer atau referensi berdasarkan sifat opsional dan semantik kepemilikannya

Kapan Menggunakan Pointer vs Referensi 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.

Alat yang Berbeda untuk Tugas yang Berbeda

Referensi dan penunjuk sama-sama memungkinkan Anda mengakses objek lain secara tidak langsung — tetapi dengan semantik yang berbeda. Gunakan masing-masing pada situasi yang paling sesuai.

Referensi untuk Sasaran Wajib

Referensi tidak dapat bernilai null dan tidak dapat diarahkan ulang. Gunakan parameter referensi ketika fungsi selalu memerlukan objek yang nyata.

void render(const Image& img);   // must have an image

Penunjuk untuk Sasaran Opsional

Penunjuk dapat bernilai null. Gunakan penunjuk ketika argumennya benar-benar opsional.

void render(const Image* img);   // nullptr means "skip"

Penunjuk Saat Anda Mengarahkannya Ulang

Penunjuk dapat diarahkan ke objek yang berbeda. Gunakan penunjuk ketika arah akses tidak langsung berubah selama algoritme berlangsung — seperti kursor yang bergerak atau simpul saat ini.

Node* current = head;
while (current) {
    process(current);
    current = current->next;
}

Referensi untuk Wadah Referensi?

Anda tidak dapat memiliki std::vector<T&>. Gunakan std::vector<std::reference_wrapper<T>> atau simpan penunjuk sebagai gantinya.

Mengembalikan Referensi

Kembalikan referensi ketika hasilnya tetap hidup setelah pemanggilan selesai dan pemanggil dapat menggunakannya secara langsung (anggota, elemen wadah).

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

Mengembalikan Penunjuk

Kembalikan penunjuk ketika fungsi mungkin tidak menghasilkan "hasil" atau ketika kepemilikannya tidak jelas. Dalam kode modern, utamakan std::optional atau penunjuk pintar.

Anggota Kelas

Menyimpan referensi sebagai anggota menetapkan objek yang dirujuk selama masa hidup objek — dan melarang penugasan salin. Anggota penunjuk lebih fleksibel, tetapi memerlukan pemeriksaan nilai null.

Polimorfisme

Penunjuk dan referensi sama-sama dapat digunakan untuk polimorfisme. Simpan penunjuk kelas dasar dalam wadah (vektor tidak dapat menampung referensi); gunakan referensi untuk parameter ketika nilai null tidak valid.

Penunjuk Pintar Mengungguli Pemilik Mentah

Gunakan penunjuk mentah hanya untuk akses tidak langsung tanpa kepemilikan. Kepemilikan harus berada pada std::unique_ptr atau std::shared_ptr.

Panduan Singkat Pengambilan Keputusan

Panduan cepat:

  • Objek selalu valid → referensi
  • Mungkin tidak ada → penunjuk atau std::optional
  • Arah akses tidak langsung berpindah → penunjuk
  • Memiliki memori → penunjuk pintar
  • Di dalam wadah → penunjuk (vektor referensi sulit digunakan)

Pemeriksaan Cepat

Manakah tipe parameter terbaik untuk fungsi yang memerlukan objek yang tidak null?

Ringkasan

Gunakan referensi untuk sasaran wajib yang tetap; gunakan penunjuk untuk sasaran opsional atau yang berpindah. Untuk kepemilikan, utamakan penunjuk pintar. Wadah biasanya memerlukan penunjuk, bukan referensi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kapan Menggunakan Pointer vs Referensi” gratis?

Ya — teks lengkap “Kapan Menggunakan Pointer vs Referensi” 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 “Kapan Menggunakan Pointer vs Referensi”?

Pilih pointer atau referensi berdasarkan sifat opsional dan semantik kepemilikannya 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 “Kapan Menggunakan Pointer vs Referensi” 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. Pointer Mentah dan Operator Address-of
  2. Dereferensi dan Aritmetika Pointer
  3. nullptr dan Keamanan Pointer Null
  4. Kapan Menggunakan Pointer vs Referensi
← Kembali ke C++ Academy