Melebihi Muatan Fungsi Ditindih dalam C
Apabila menghadapi masalah di mana lebihan fungsi menjadi tersembunyi apabila mengatasi fungsi kelas asas, adalah penting untuk memahami tingkah laku yang wujud bagi model warisan C.
Dalam contoh yang diberikan, apabila kelas bar mengatasi fungsi foo::a(), ia menyembunyikan semua versi foo::a() yang terlebih muatan dalam skop kelas bar. Ini sebenarnya tidak salah tetapi lebih kepada reka bentuk.
Untuk menyelesaikan isu ini, kelas bar boleh menggunakan pengisytiharan penggunaan:
<code class="cpp">class bar : public foo { public: using foo::a; // Bring all 'foo::a()' overloads into 'bar' scope ... };</code>
Pengisytiharan penggunaan secara berkesan mengimport semua lebihan foo:: a() ke dalam skop kelas bar, membenarkan lebihan muatan berfungsi dengan betul.
Walau bagaimanapun, adalah penting untuk mempertimbangkan kemungkinan akibat. Jika kod sedia ada menggunakan kelas foo, penambahan lebihan baharu melalui bar boleh menjejaskan kelakuannya atau menimbulkan kesamaran, yang membawa kepada ralat masa kompilasi.
Atas ialah kandungan terperinci Bolehkah Fungsi Overridden dalam C Menyembunyikan Versi Terlebih Beban?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!