Mengisytiharkan Antara Muka dalam C
Soalan:
Bagaimanakah saya boleh menentukan kelas yang mewakili antara muka dalam C ? Adakah ini dicapai melalui kelas asas abstrak?
Jawapan:
Ya, antara muka dalam C boleh ditakrifkan sebagai kelas asas abstrak. Untuk mencipta antara muka:
-
Isytiharkan kelas abstrak tulen: Kelas ini hendaklah mengandungi hanya kaedah maya tulen, yang tidak mempunyai pelaksanaan. Kaedah berfungsi sebagai pemegang tempat dan memaksa kelas terbitan untuk melaksanakannya.
class IDemo {
public:
virtual void OverrideMe() = 0;
};
Salin selepas log masuk
-
Kelas terbitan: Kelas yang mewarisi daripada antara muka mesti melaksanakan semua kaedah maya tulen. Mereka menyediakan pelaksanaan konkrit antara muka.
class Child : public IDemo {
public:
virtual void OverrideMe() {
// Implement the method here
}
};
Salin selepas log masuk
-
Pemusnah maya (pilihan): Pertimbangkan untuk menambah pemusnah maya pada antara muka. Ini membolehkan pemindahan pemilikan penunjuk selamat tanpa mendedahkan kelas terbitan konkrit.
class IDemo {
public:
virtual ~IDemo() {}
virtual void OverrideMe() = 0;
};
Salin selepas log masuk
Nota Tambahan:
- Tidak seperti dalam bahasa lain, antara muka C tidak menyokong warisan berbilang.
- Pemusnah tidak memerlukan badan kerana antara muka tidak mempunyai konkrit ahli.
- Sesetengah penyusun mungkin menghadapi masalah dengan pemusnah maya kosong, jadi disyorkan untuk tidak memasukkan badan.
- Menggunakan fungsi maya dan sebaris bersama-sama untuk pemusnah boleh diterima.
Atas ialah kandungan terperinci Bagaimanakah Saya Mentakrifkan dan Melaksanakan Antara Muka dalam C Menggunakan Kelas Asas Abstrak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!