Reference sebagai Parameter
Pelajaran 9 dari 14 dalam kursus Pointer C++ di Coddy.
Sekarang, kita bisa melihat bagaimana penggunaan referensi sebagai argumen saat memanggil fungsi dapat mempermudah pekerjaan.
Jika kita kembali ke pelajaran tentang meneruskan pointer sebagai parameter, kita telah membahas bahwa saat kita meneruskan nilai ke fungsi, nilai yang kita gunakan di dalam fungsi adalah salinan dari nilai asli yang kita teruskan.
Kita menggunakan pointer untuk mengatasi masalah ini, tetapi kita tidak perlu menggunakan alamat, dereferensi, pointer, dan sebagainya. Kita cukup menandai parameter yang kita gunakan sebagai referensi, lalu melakukan pekerjaan seperti biasa dengan nilai biasa.
// Daripada seperti ini
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
cout << *x << " " << *y << endl;
}
// Kamu bisa melakukannya seperti ini
void swap(int &x, int &y) {
int temp = x;
x = y;
y = temp;
cout << x << " " << y << endl;
}Sekarang, jika kita memanggil fungsi swap(), nilai kedua integer yang kita teruskan akan berubah secara permanen. Jadi, alih-alih mengambil alamat memori dari nilai-nilai tersebut lalu mengubah nilainya di alamat memori itu dengan melakukan dereferensi, kita cukup mengambil referensi ke nilai aslinya sebagai argumen dan melakukan pekerjaan pada nilai-nilai tersebut. Karena referensi itu mengacu pada nilai asli, setiap perubahan akan bersifat permanen.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Tantangan
MudahSelesaikan fungsi Calculator dari dua pelajaran sebelumnya, tetapi gunakan reference ke nilai variabel large dan small, bukan pointer. Di dalam fungsi, kurangi large dengan selisih antara large dan small, lalu tambahkan small ke dirinya sendiri.
input
5 3
output
5 3
3 6
Penjelasan
Mengurangi 5 dengan selisih antara 5 dan 3, yaitu 2, menghasilkan 5 - 2 = 3, sedangkan menambahkan 3 ke 3 menghasilkan 6
Catatan: JANGAN tulis fungsi main()
Coba sendiri
#include <iostream>
using namespace std;
void Calculator(// Terima argumen: large & small sebagai referensi) {
// Tulis kode untuk perhitungan
}
// JANGAN tulis fungsi main()Semua pelajaran di Pointer C++
2Pointer & Reference
Pointer sebagai ParameterReference - &Reference sebagai ParameterPointer vs Reference3Alokasi Memori Dinamis
Operator new & deleteKebocoran Memoriarray DinamisPenyisipan pada array DinamisLatihan sendiri: Compiler C++ online