Penghirisan Objek: Kehilangan Data dalam Warisan
Dalam pengaturcaraan berorientasikan objek, warisan membenarkan kelas melanjutkan fungsi kelas induknya. Walau bagaimanapun, mekanisme pewarisan ini boleh memperkenalkan fenomena yang dikenali sebagai penghirisan objek, yang boleh mengakibatkan kehilangan data.
Apakah Penghirisan Objek?
Penghirisan objek berlaku apabila objek daripada kelas terbitan diberikan kepada contoh kelas asas. Semasa tugasan ini, sebahagian daripada data kelas yang diperolehi menjadi tidak boleh diakses dan "dihiris".
Bilakah Penghirisan Objek Berlaku?
Pertimbangkan dua kelas berikut:
class A { int foo; }; class B : public A { int bar; };
Satu kejadian kelas B mengandungi dua ahli data: foo (diwarisi daripada A) dan bar. Walau bagaimanapun, jika anda menetapkan objek jenis B kepada contoh jenis A seperti berikut:
B b; A a = b;
Bar ahli data dalam objek b menjadi tidak boleh diakses dalam objek a, mengakibatkan penghirisan objek. Ini berlaku kerana a dianggap sebagai contoh kelas asas dan ia tidak mempunyai pengetahuan tentang ahli bar yang ditakrifkan dalam kelas terbitan B.
Atas ialah kandungan terperinci Apakah Penghirisan Objek dan Bilakah Ia Berlaku dalam Pewarisan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!