Penulisan semula fungsi C++ membolehkan subkelas mengatasi fungsi kelas induk, mencapai polimorfisme dan membawa fleksibiliti warisan. Apabila menulis semula fungsi, tandatangan fungsi subkelas mestilah betul-betul sama dengan fungsi kelas induk, yang dikenal pasti oleh kata kunci ganti. Kelebihan termasuk fleksibiliti, polimorfisme, dan penggunaan semula kod. Walau bagaimanapun, sila ambil perhatian bahawa peraturan padanan tandatangan dan pengubahsuai akhir tidak boleh ditindih.
Penulisan semula fungsi C++: Membuka lembaran baharu pewarisan fleksibel
Kata Pengantar
Fungsi menulis semula ialah ciri C++.ride yang berkuasa yang membolehkan subkelas untuk menggantikan fungsi morfologi Ini membuka kemungkinan baharu untuk warisan fleksibel, membenarkan subkelas menyesuaikan tingkah laku mereka sambil mengekalkan kefungsian asas kelas induk.
Syntax
Untuk mengatasi fungsi, subkelas perlu mengisytiharkan fungsi baharu dengan tandatangan yang sama seperti fungsi kelas induk. Jenis pemulangan fungsi baharu, parameter dan nama mestilah betul-betul sama dengan fungsi kelas induk. Berikut ialah sintaks untuk mengatasi fungsi:
returntype ClassName::functionName(parameters) { // 子类的函数体 }
di mana, returntype
ialah jenis pulangan fungsi, ClassName
ialah nama subkelas dan functionName
ialah Untuk mengatasi nama fungsi, parameter
ialah senarai parameter fungsi. returntype
是函数的返回类型,ClassName
是子类的名称,functionName
是要重写函数的名称,parameters
是函数的参数列表。
实战案例
考虑这样一个父类:
class Shape { public: virtual double area() { return 0.0; } };
我们想创建一个子类 Rectangle
,它具有与父类相同的 area()
函数,但提供自己的实现:
class Rectangle : public Shape { public: double length; double width; Rectangle(double l, double w) : length(l), width(w) {} double area() override { return length * width; } };
在子类 Rectangle
中,我们重写了 area()
函数并添加了 length
和 width
成员变量来存储矩形的尺寸。通过使用 override
关键字,我们可以显式指示该函数是重写父类函数。
优点
函数重写提供了以下优点:
注意事项
final
kawasan()
yang sama dengan kelas induk , tetapi sediakan pelaksanaan anda sendiri: 🎜rrreee🎜Dalam subkelas Rectangle
, kami mengatasi fungsi area()
dan menambah length
dan width
pembolehubah ahli untuk menyimpan saiz segi empat tepat. Dengan menggunakan kata kunci override
, kami boleh menunjukkan dengan jelas bahawa fungsi itu mengatasi fungsi kelas induk. 🎜🎜🎜 Kelebihan 🎜🎜🎜 Penggantian fungsi memberikan kelebihan berikut: 🎜final
, ia tidak boleh ditindih dalam kelas anak. 🎜🎜Atas ialah kandungan terperinci Penulisan semula fungsi C++: membuka lembaran baharu pewarisan fleksibel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!