Rumah > Soal Jawab > teks badan
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?
欧阳克2017-06-10 09:50:57
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.