Rumah >pembangunan bahagian belakang >C++ >Peristiwa untuk penulisan semula fungsi C++: pematuhan antara keperluan subkelas dan antara muka kelas induk
Fungsi menulis semula bermakna subkelas mencipta pelaksanaan yang berbeza bagi fungsi dengan nama yang sama dengan kelas induknya Ia biasanya digunakan dalam situasi berikut: subkelas mempunyai keperluan khusus yang tidak dilindungi oleh kelas induk. Subkelas perlu mengubah suai tingkah laku fungsi kelas induk. Prinsip pengasingan antara muka memerlukan antara muka kelas induk diuraikan kepada sub-antara muka yang lebih kecil.
Acara penulisan semula fungsi C++: kesesuaian antara keperluan subkelas dan antara muka kelas induk
Apakah itu penulisan semula fungsi?
Peningkatan fungsi bermakna subkelas mencipta fungsi dengan nama yang sama dengan kelas induknya tetapi dengan pelaksanaan yang berbeza. Melalui overriding, subkelas boleh memanjangkan atau mengubah suai gelagat kelas induk untuk memenuhi keperluan khususnya.
Peristiwa untuk menulis semula fungsi
Pennulisan semula fungsi biasanya digunakan dalam situasi berikut:
Kes praktikal
Pertimbangkan kelas ibu bapa dan anak berikut:
class Animal { public: virtual void speak() { cout << "Generic animal sound" << endl; } }; class Dog : public Animal { public: virtual void speak() override { cout << "Woof!" << endl; } };
Dalam kelas Anjing
, kami mengatasi fungsi speak()
. Ini membolehkan objek Anjing
bercakap "Woof!" manakala objek Animal
masih mengeluarkan "Bunyi haiwan generik". Dog
类中,我们重写了 speak()
函数。这允许 Dog
对象以 "Woof!" 的方式说话,而 Animal
对象仍然发出 "Generic animal sound" 的声音。
注意事项
以下是函数重写的一些注意事项:
override
override
untuk menunjukkan secara jelas bahawa ia adalah override fungsi. 🎜🎜Fungsi ganti boleh mempunyai pelaksanaan yang berbeza, tetapi tidak boleh mengubah keterlihatan (awam, dilindungi atau peribadi) fungsi kelas induk. 🎜🎜Atas ialah kandungan terperinci Peristiwa untuk penulisan semula fungsi C++: pematuhan antara keperluan subkelas dan antara muka kelas induk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!