Rumah > Artikel > pembangunan bahagian belakang > Bagaimana anda membebankan `
Dalam pengaturcaraan, anda mungkin menghadapi situasi di mana anda ingin membebankan operator tertentu untuk berinteraksi dengan jenis data atau kelas tersuai anda. Soalan ini meneroka isu yang timbul apabila cuba membebankan << operator sebagai fungsi rakan untuk kelas templat.
Coretan kod yang disediakan mengisytiharkan kelas templat Berpasangan dengan dua jenis parameter T dan U. Dalam kelas ini, terdapat percubaan untuk mengisytiharkan << operator sebagai fungsi rakan yang mengambil ostream dan contoh Pair sebagai parameter. Walau bagaimanapun, pengkompil menimbulkan amaran tentang mengisytiharkan fungsi bukan templat, walaupun definisi berikutnya bagi fungsi templat untuk pengendali.
Untuk menyelesaikan isu ini, sintaks yang betul ialah mengkhususkan contoh templat untuk < ;< operator dan bukannya mengisytiharkannya sebagai fungsi rakan umum. Ini dicapai dengan mengubah suai perisytiharan seperti berikut:
friend ostream& operator<<<> (ostream&, Pair&);
Pengisytiharan ini menyatakan bahawa contoh templat khusus bagi << operator akan ditakrifkan untuk kelas Pair dengan parameter jenis T dan U. Ia menyatakan dengan jelas bahawa ini adalah pengkhususan dan bukan pengisytiharan umum.
Selain itu, pengesyoran pengkompil untuk menambah <...> selepas nama fungsi dalam pengisytiharan rakan tidak diperlukan dalam kes ini kerana pengkompil boleh membuat kesimpulan parameter jenis daripada hujah templat dalam definisi.
Dengan membuat pelarasan ini, kod akan berjaya disusun. Ingat bahawa untuk operator lebih memuatkan dalam templat, anda perlu menyatakan secara eksplisit contoh templat yang dikhususkan, seperti yang ditunjukkan dalam perisytiharan yang diubah suai.
Atas ialah kandungan terperinci Bagaimana anda membebankan `. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!