Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi harus ditandai dengan
override
Panduan Inti C++
C.128: Fungsi virtual harus menentukan tepat salah satu virtual, penimpaan, atau final
Tidak diperlukan oleh pengkompilasi untuk menyatakan dengan jelas bahwa fungsi virtual mengambil alih basisnya. Tidak menentukan override dapat menyebabkan masalah halus selama pemeliharaan jika spesifikasi virtual pernah berubah dalam hierarki kelas. Ini juga menurunkan keterbacaan dan membuat perilaku polimorfik antarmuka kurang jelas. Jika fungsi ditandai dengan jelas sebagai override, pengkompilasi dapat memeriksa konsistensi antarmuka, dan membantu menemukan masalah sebelum memanifestasikan dirinya pada waktu proses.
Catatan
Aturan ini tidak berlaku untuk destruktor. Destruktor memiliki spesifikasi virtualitasnya sendiri.
Aturan tidak menandai fungsi yang secara eksplisit ditandai sebagai final, yang merupakan variasi khusus penentu virtual.
Peringatan muncul pada definisi fungsi, bukan deklarasi. Mungkin membingungkan, karena definisi tidak memiliki penentu virtual, tetapi peringatannya masih benar.
Nama analisis kode: OVERRIDE_EXPLICITLY
Contoh: Penimpaan implisit
class Shape {
public:
virtual void Draw() = 0;
// ...
};
class Ellipse : public Shape {
public:
void Draw() { // C26433
//...
}
};
Lihat juga
C.128: Fungsi virtual harus menentukan tepat salah satu virtual, penimpaan, atau final