c++ - Bolehkah fungsi dengan nama yang sama dengan parameter berbeza dalam kelas terbitan diisytiharkan sebagai fungsi maya
世界只因有你
世界只因有你 2017-06-10 09:48:57
0
1
1297

Apabila kelas asas dan kelas terbitan mempunyai fungsi dengan nama yang sama, Tidak kira bilangan parameter adalah sama atau berbeza, objek subkelas akan sentiasa memanggil fungsi nama yang sama bagi kelas terbitan Jika anda mahu memanggil fungsi nama yang sama kelas asas, anda perlu menggunakan penunjuk kelas asas Atau petikan. Jika anda kini ingin menggunakan borang panggilan yang sama, anda boleh memanggil versi pelaksanaan fungsi kelas terbitan atau versi pelaksanaan kelas asas, anda perlu menggunakan fungsi maya Walau bagaimanapun, guru berkata bahawa hanya prototaip fungsi boleh diisytiharkan sebagai fungsi maya jika ia betul-betul sama Ah, kemudian
untuk fungsi dengan nama yang sama yang mempunyai nombor atau jenis parameter formal yang berbeza, bagaimana untuk melaksanakan fungsi di atas?

世界只因有你
世界只因有你

membalas semua(1)
学霸

Anda boleh mentakrifkannya seperti ini dan kemudian mentakrifkannya semula seperti yang diperlukan dalam subkelas:

class Base {
public:
   virtual void print(int) = 0;
   virtual void print(float) = 0;
};

Punca masalah ini terletak pada cara C++ mencari fungsi Ia mesti mengetahui nama dan parameter fungsi, jadi anda mesti mentakrifkan kedua-duanya dengan jelas subkelas.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan