Bagaimana untuk membebankan Operator Rakan `

DDD
Lepaskan: 2024-11-01 02:59:27
asal
561 orang telah melayarinya

How to Overload Friend Operator `

Operator Rakan Melebihi << untuk Kelas Templat

Apabila cuba membebankan << operator sebagai rakan kepada kelas templat, anda mungkin menghadapi amaran pengkompil yang menunjukkan bahawa ia mengisytiharkan fungsi bukan templat. Untuk menyelesaikan isu ini, adalah perlu untuk mengisytiharkan fungsi templat dengan betul sebelum pengisytiharan rakan.

Dalam kod yang disediakan, pengisytiharan rakan untuk << pengendali ialah:

<code class="cpp">friend ostream&amp; operator<<(ostream&amp;, Pair<T,U>&amp;);<p>Walau bagaimanapun, pengkompil mengesyorkan menambah <> kurungan pada nama fungsi, menunjukkan bahawa ia harus diisytiharkan sebagai fungsi templat. Sintaks yang betul ialah:</p>
<pre class="brush:php;toolbar:false"><code class="cpp">friend ostream&amp; operator<< <> (ostream&amp;, Pair<T,U>&amp;);</code>
Salin selepas log masuk

Ini mengisytiharkan << operator sebagai rakan kelas templat Pair dan menentukan bahawa ia adalah fungsi templat dengan parameter generik T dan U.

Ingat, pengisytiharan fungsi templat juga harus diletakkan sebelum definisi templat kelas Pair untuk memastikan bahawa pengkompil mengetahui fungsi templat apabila menghuraikan perisytiharan rakan. Kod yang diperbetulkan dengan pengisytiharan rakan yang betul dan pengisytiharan fungsi templat:

template  class Pair;

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

// Pair template class definition...

Atas ialah kandungan terperinci Bagaimana untuk membebankan Operator Rakan `. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan