Saat bekerja dengan objek dan instance lain dari suatu kelas, mengakses atribut adalah salah satu operasi yang biasa dilakukan oleh seorang programmer. Mendapatkan akses ke data tertentu yang disimpan dalam objek bisa jadi sulit, mengingat metode keamanan yang digunakan untuk itu. Jadi, atribut yang ditutup oleh private dan protected specifier dapat ditarik keluar dari instance kelas hanya dalam metode milik objek dari kelas yang sama atau anak (untuk dilindungi).
instruksi
Langkah 1
Buat objek atau pointer ke instance kelas yang atributnya Anda butuhkan dalam program Anda. Konstruksi standar untuk operasi semacam itu adalah CMyClass myObj1. Terkadang, untuk menginisialisasi objek, Anda harus meneruskan parameter tertentu ke konstruktor kelas. Dalam hal ini, catatan pembuatan objek mungkin terlihat seperti ini: CMyClass myObj1 (param1, param2, param3), di mana CMyClass adalah nama kelas, myObj1 adalah nama objek yang dibuat, dan semua parameter yang diminta oleh konstruktor terdaftar dalam kurung. Pointer ke instance kelas dibuat sebagai berikut: CMyClass * pObj1 = new CMyClass (param1, param2, param3).
Langkah 2
Cara paling sederhana untuk memanggil atribut adalah dengan merujuknya langsung di mana saja dalam program. Namun, ini hanya mungkin untuk data terbuka yang dijelaskan dalam kelas dengan pengubah publik. Akses langsung melalui objek terlihat seperti ini: myObj1.attr1, di mana attr1 adalah atribut dari kelas ini. Untuk pointer, panggilannya adalah: pObj1–> attr1.
Langkah 3
Jika atribut yang perlu Anda rujuk memiliki status tersembunyi dan dijelaskan dalam kelas dengan pengubah pribadi, maka akses ke atribut tersebut hanya dimungkinkan dari metode milik kelas yang sama. Metode atau fungsi kelas harus memiliki status publik publik. Tambahkan metode baru ke kelas, tempat menulis pemrosesan atribut yang diperlukan. Dalam hal ini, parameter dapat diteruskan ke fungsi, tergantung pada nilai tindakan tertentu yang dilakukan. Fungsi itu sendiri juga dapat mengembalikan data, seperti konten atribut. Kode program C ++ yang mengimplementasikan kedua fungsi untuk bekerja dengan atribut pribadi: class CMyClass {protected: int attr1; // atribut publik: void funcA1 (int param) {attr1 = param; } int funcA2 () {kembali attr1; }};
Langkah 4
Jadi, untuk menyetel atribut pribadi attr1 ke nilai yang Anda butuhkan, panggil metode dari kelas yang sama menggunakan objek yang dibuat sebelumnya: myObj1.funcA1 (10) - dengan operasi implisit serupa, nilai 10 ditempatkan di atribut attr1. Saat bekerja dengan pointer ke instance kelas, operasi serupa akan terlihat seperti ini: Obj1–> funcA (10). Untuk mengambil atribut pribadi attr1 dan mengetahui nilai yang tersimpan di dalamnya, panggil metode kelas lain: int Res = myObj1.funcA2 (). Dalam hal ini, variabel integer Res akan diberi nilai dari variabel kelas tersembunyi.
Langkah 5
Jika Anda perlu memanggil atribut dengan status terproteksi di semua objek kelas anak, rujuk ke variabelnya secara langsung. Namun, ketika bekerja dalam fungsi kelas asing, akses ke data yang dilindungi harus diperoleh dengan cara yang dijelaskan di atas.
Langkah 6
Untuk memanggil atribut tanpa membuat objek, deklarasikan variabelnya di kelas sebagai statis menggunakan konstruksi berikut: static int attr1. Dalam hal ini, Anda dapat menarik atribut di mana saja dalam kode program dengan menentukan entri: CMyClass:: attr1.