Rumah > Artikel > pembangunan bahagian belakang > Bilakah anda harus menggunakan warisan dan bilakah anda harus menggunakan komposisi dalam C++?
Dalam C++, warisan digunakan untuk mewujudkan hubungan "is-a" dan menguatkuasakan konsistensi antara muka. Dan komposisi digunakan untuk mewujudkan perhubungan "mengandungi satu", memberikan fleksibiliti. Warisan: Digunakan apabila subkelas mempunyai hubungan "is-a" dengan kelas asas, seperti kenderaan dan kereta. Gabungan: Digunakan apabila kelas kontena dan kelas komponen mempunyai hubungan "mengandungi satu" Contohnya, watak dalam permainan mengandungi nilai senjata, pertahanan dan kesihatan.
Warisan dan komposisi dalam C++: bila hendak menggunakannya?
Dalam C++, pewarisan dan gubahan ialah dua teknik yang digunakan untuk organisasi objek dan penggunaan semula kod. Memahami masa untuk menggunakan teknologi yang penting untuk menulis kod yang boleh diselenggara dan berskala.
Warisan
Warisan membenarkan satu kelas (subkelas) mewarisi data dan gelagat daripada kelas lain (kelas asas). Subkelas mempunyai akses kepada semua pembolehubah dan fungsi ahli bukan persendirian dalam kelas asas dan boleh mengatasi ahli ini untuk mencapai tingkah laku yang berbeza. . burung
Apabila antara muka tertentu perlu dikuatkuasakan, contohnya:
Bentuk: Bulatan, Segiempat, Segitiga
Menggalakkan polimorfisme ( Melalui maya fungsi)
Komposisi melibatkan mencipta kelas (kelas kontena) dan memasukkan kelas lain (kelas komponen) di dalamnya sebagai ahli datanya melalui penunjuk atau rujukan. Komposisi membenarkan kelas kontena menggunakan fungsi kelas komponen, tetapi kedua-duanya adalah entiti berasingan dalam ingatan.
Kereta: enjin, tayar, badan
Komputer: papan induk , memori
Apabila fleksibiliti yang lebih besar diperlukan, contohnya:
kelebihan: Kelebihan:
Contoh praktikal:
Pertimbangkan program simulasi haiwan di mana pelbagai haiwan perlu diwakili. Kita boleh menggunakan warisan untuk mentakrifkan kelas asasHaiwan
untuk semua haiwan, yang mengandungi sifat biasa (cth. nama, jenis). Kami kemudiannya boleh mencipta subkelas Kucing
, Anjing
dan Burung
untuk mewakili jenis haiwan tertentu dan mengatasi perihalan tingkah laku unik untuk setiap fungsi maya subkelas . class Character { public: Sword* sword; // 组件:武器 Shield* shield; // 组件:防御 Health* health; // 组件:生命值 };
Atas ialah kandungan terperinci Bilakah anda harus menggunakan warisan dan bilakah anda harus menggunakan komposisi dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!