Rumah >pembangunan bahagian belakang >C++ >Adakah Kelas Asas Abstrak dalam C Setara dengan Antara Muka?
Mengisytiharkan Antara Muka dalam C
Dalam bidang pengaturcaraan berorientasikan objek, antara muka mentakrifkan kontrak yang mesti dipatuhi oleh kelas konkrit. Untuk mewujudkan antara muka dalam C , anda boleh menggunakan kelas asas abstrak.
Adakah Antara Muka Bersamaan dengan Kelas Asas Abstrak?
Ya, kelas asas abstrak dengan berkesan berfungsi sebagai antara muka dalam C . Ia mentakrifkan kaedah maya tulen yang menentukan kefungsian yang mesti dilaksanakan oleh kelas yang diperolehi. Kaedah ini kekurangan pelaksanaan dalam kelas asas, memaksa kelas terbitan untuk menyediakan pelaksanaan konkrit mereka sendiri.
Meningkatkan Antara Muka dengan Pemusnah Maya
Manakala kelas asas abstrak menyediakan asas yang kukuh untuk antara muka, anda mungkin ingin mempertimbangkan untuk menambah pemusnah maya. Ini memastikan bahawa penunjuk kepada kelas antara muka dipadamkan dengan betul, tanpa mengira jenis kelas terbitan konkrit. Ini memberi anda fleksibiliti untuk memindahkan pemilikan penunjuk tanpa mendedahkan pelaksanaan sebenar.
Contoh
Coretan kod berikut menggambarkan antara muka IDemo dengan kaedah maya tulen OverrideMe, sebagai serta anak kelas konkrit yang mewarisi daripada Ibu Bapa dan IDemo serta melaksanakan OverrideMe kaedah:
class IDemo { public: virtual ~IDemo() {} virtual void OverrideMe() = 0; }; class Parent { public: virtual ~Parent(); }; class Child : public Parent, public IDemo { public: virtual void OverrideMe() { // Implementation } };
Dalam contoh ini, pemusnah maya untuk IDemo adalah penting untuk deallokasi penunjuk yang betul yang merujuk kejadian IDemo, tanpa mengira kelas terbitan sebenar.
Atas ialah kandungan terperinci Adakah Kelas Asas Abstrak dalam C Setara dengan Antara Muka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!