Walaupun fungsi maya tulen secara amnya difahami kekurangan pelaksanaan, senario tertentu membenarkan definisinya dalam kelas asas.
Dalam coretan kod anda disediakan:
class A { public: virtual void f() = 0; }; void A::f() { cout << "Test" << endl; }
Fungsi A::f() diisytiharkan sebagai maya tulen dengan pelaksanaan. Ini dibenarkan oleh bahasa C, walaupun ia menimbulkan persoalan tentang tujuannya.
Fungsi maya tulen dengan pelaksanaan berfungsi untuk tujuan tertentu. Dengan menyediakan pelaksanaan lalai dalam kelas asas, kelas terbitan boleh:
Berikut ialah contoh:
class B : public A { virtual void f() { A::f(); // Calls the base class implementation } };
Penggunaan fungsi maya tulen dengan pelaksanaan adalah jarang berlaku tetapi boleh memberi manfaat dalam senario di mana:
Semasa menyediakan pelaksanaan kerana fungsi maya tulen dalam kelas asas dibenarkan oleh bahasa C, ia bukan amalan biasa. Memahami tujuan dan implikasi teknik ini membolehkan anda menggunakannya apabila sesuai.
Atas ialah kandungan terperinci Bila dan Mengapa Anda Akan Melaksanakan Fungsi Maya Tulen dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!