Rumah >pembangunan bahagian belakang >C++ >Apakah beberapa alternatif kepada fungsi rakan?
Alternatif kepada fungsi rakan ialah: Kaedah kelas merangkum: Tentukan kaedah dalam bahagian peribadi kelas dan dedahkannya sebagai fungsi rakan untuk mengekalkan pengkapsulan dan membenarkan akses luaran kepada ahli persendirian. Mod jambatan: Gunakan kelas jambatan untuk mengandungi penuding ke kelas sasaran dan tambahkan fungsi rakan padanya untuk mewakilkan kaedah kelas sasaran. Metaprogramming templat: Gunakan metaprogramming templat untuk memanipulasi ahli kelas pada masa penyusunan untuk membenarkan akses kepada ahli persendirian.
Fungsi rakan ialah jenis fungsi khas yang boleh mengakses ahli persendirian kelas lain. Walaupun fungsi rakan adalah mudah, ia juga boleh memecahkan enkapsulasi. Oleh itu, apabila mereka bentuk kelas, sebaiknya elakkan menggunakan fungsi rakan sebanyak mungkin.
Berikut ialah beberapa alternatif kepada fungsi rakan:
Kaedah kelas merangkum:
Tentukan kaedah dalam bahagian peribadi kelas dan dedahkannya sebagai fungsi rakan. Ini mengekalkan enkapsulasi sambil masih membenarkan fungsi luaran mengakses ahli persendirian.
Gunakan corak jambatan:
Buat kelas jambatan yang mengandungi penunjuk ke kelas destinasi. Tambahkan fungsi rakan pada kelas jambatan, dan kemudian wakilkan kaedah kelas sasaran kepada fungsi rakan.
Menggunakan metaprogramming templat:
Gunakan metaprogramming templat pada masa penyusunan untuk memanipulasi ahli kelas. Kaedah ini lebih kompleks, tetapi membenarkan akses kepada ahli persendirian pada masa jalan.
Kes praktikal:
Andaikan kita ada Person
类,其私有成员为 name
和 age
。我们要定义一个 printInfo
函数来打印 Person
maklumat.
Atas ialah kandungan terperinci Apakah beberapa alternatif kepada fungsi rakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!