Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengelak Pendapat Pendua untuk Fungsi Ahli Const dan Bukan Const dalam C ?

Bagaimanakah Saya Boleh Mengelak Pendapat Pendua untuk Fungsi Ahli Const dan Bukan Const dalam C ?

Mary-Kate Olsen
Lepaskan: 2024-12-02 11:42:16
asal
332 orang telah melayarinya

How Can I Avoid Duplicate Getters for Const and Non-Const Member Functions in 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());
    }
};
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan