Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Membebankan Operator \'<<\' sebagai Rakan untuk Kelas Templat \'Pair\'?

Bagaimana untuk Membebankan Operator \'<<\' sebagai Rakan untuk Kelas Templat \'Pair\'?

DDD
DDDasal
2024-10-31 23:18:28972semak imbas

How to Overload the '<<' Operator as a Friend for Template Class 'Pair'?

Operator Lebih Muatan '<<' sebagai Rakan untuk Kelas Templat 'Pair'

Apabila cuba membebankan '<<' operator sebagai rakan kepada kelas templat 'Pair,' pengguna mungkin menghadapi amaran pengkompil. Mesej ini memaklumkan pengaturcara tentang isu pengisytiharan fungsi bukan templat.

Untuk membebankan operator dengan betul, pengisytiharan rakan harus diubah suai seperti berikut:

friend ostream& operator<< <> (ostream&, Pair&);

Dengan membiarkan argumen templat kosong dalam '<>', pengkompil boleh membuat kesimpulan senarai parameter untuk mengenal pasti pengkhususan khusus templat.

Untuk menghapuskan amaran sepenuhnya, pengisytiharan 'operator<<' hendaklah mendahului takrif templat 'Pair', menyerupai struktur berikut:

template  class Pair;

template 
ostream& operator<<(ostream& out, Pair& v);

// Template definition of 'Pair'

Dengan mematuhi sintaks yang disemak ini, pengkompil boleh mengenali pengisytiharan rakan sebagai pengkhususan templat dan membebankan '< <' pengendali dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana untuk Membebankan Operator \'<<\' sebagai Rakan untuk Kelas Templat \'Pair\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn