Dalam C 11, kata kunci 'override' telah diperkenalkan untuk menangani isu tertentu. Seperti yang anda fahami, peranan utamanya adalah untuk memastikan fungsi yang sedang dilaksanakan benar-benar mengatasi kaedah maya dalam kelas asas.
Adakah Ia Mempunyai Sebarang Fungsi Lain?
Tidak, satu-satunya tujuan kata kunci 'override' adalah untuk memberikan semakan eksplisit untuk mengatasi kaedah maya. Ia berfungsi sebagai jaminan bahawa fungsi yang dilaksanakan bertujuan untuk mengatasi kaedah maya dalam kelas asas dan menghalang ralat yang sebaliknya tidak dapat disedari.
Pertimbangkan contoh berikut:
struct Base { virtual int foo() const; }; struct Derived : Base { virtual int foo() // whoops! { // ... } };
Dalam kod ini, fungsi 'foo()' dalam kelas Terbitan tiada pengubah suai 'const'. Walau bagaimanapun, tanpa kata kunci 'override', pengkompil tidak akan membenderakan ini sebagai ralat, yang berpotensi membawa kepada tingkah laku yang salah. Dengan menggunakan 'override', anda memaksa pengkompil untuk mengesahkan bahawa fungsi itu sebenarnya mengatasi kaedah maya sedia ada, menangkap ralat tersebut dan memastikan kefungsian yang dimaksudkan.
Oleh itu, kata kunci 'override' memainkan peranan penting dalam menyatakan secara eksplisit niat untuk mengatasi kaedah maya dalam kelas asas, mengurangkan risiko ralat dan tingkah laku yang tidak diingini.
Atas ialah kandungan terperinci Adakah Kata Kunci 'override' Melakukan Lebih Daripada Sekadar Mengesahkan Kaedah Maya Ditindih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!