Virtual vs Pure Virtual Function
Dalam pengaturcaraan berorientasikan objek, fungsi maya dan fungsi maya tulen ialah konsep penting untuk memahami polimorfisme.
Apakah Fungsi Maya?
A fungsi maya ialah fungsi yang boleh diwarisi dan boleh diganti dalam kelas asas yang membolehkan penghantaran dinamik. Apabila fungsi maya dipanggil pada objek, sistem masa jalan menentukan pelaksanaan fungsi sebenar untuk dilaksanakan berdasarkan jenis objek.
Contoh:
class Base { public: virtual void foo() { std::cout << "Base::foo()" << std::endl; } }; class Derived : public Base { public: void foo() override { std::cout << "Derived::foo()" << std::endl; } };
Dalam contoh ini, kedua-dua kelas Base dan Derived melaksanakan fungsi foo(). Apabila foo() dipanggil pada objek Derived, ia melaksanakan versi overridden, yang mencetak "Derived::foo()."
Apakah itu Fungsi Maya Tulen?
Fungsi maya tulen, juga dikenali sebagai fungsi abstrak, ialah fungsi maya yang tidak ditakrifkan dalam kelas asas. Ia berfungsi sebagai pemegang tempat, yang memerlukan kelas terbitan untuk melaksanakannya.
Contoh:
class Base { public: virtual void foo() = 0; // pure virtual function };
Contoh ini mengisytiharkan foo() sebagai fungsi maya tulen dalam Pangkalan kelas. Kelas terbitan mesti melaksanakan fungsi ini untuk memberikan definisi. Jika tidak, kelas terbitan menjadi abstrak dan tidak boleh dibuat seketika.
Perbezaan antara Fungsi Maya Maya dan Tulen
Atas ialah kandungan terperinci Apakah Perbezaan Antara Fungsi Maya Maya dan Tulen dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!