Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengelak Pendapat Pendua untuk Fungsi Ahli Const dan Bukan Const dalam C ?
Penyelesaian Elegan untuk Menduakan Getter untuk Objek Const dan Bukan Const
Apabila berurusan dengan getter dalam C , pembangun sering menghadapi dilema untuk mempunyai untuk mencipta pelaksanaan berasingan untuk versi const dan bukan const. Ini boleh menyusahkan apabila logik untuk kedua-dua getter adalah hampir sama.
Satu penyelesaian yang berpotensi untuk isu ini ialah melaksanakan versi bukan const dengan membuang const daripada versi const. Pendekatan ini dianggap selamat kerana fungsi panggilan bukan const, yang membayangkan bahawa objek itu sendiri bukan const, membenarkan penukaran.
Contohnya:
class Foo { public: const int& get() const { //non-trivial work return foo; } int& get() { return const_cast<int&>(const_cast<const Foo*>(this)->get()); } };
Pendekatan ini mungkin tidak menyenangkan dari segi estetika, tetapi ia menjamin keselamatan dan mengelakkan keperluan untuk pelaksanaan berasingan dalam banyak kes. Ia membolehkan pembangun menumpukan pada fungsi teras getter dan bukannya menduplikasi kod.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Pendapat Pendua untuk Fungsi Ahli Const dan Bukan Const dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!