與模板類友一起深入研究類模板
定義二叉樹類(BT)及其元素類(BE)時, BT 訪問BE 私人會員需建立好友關係。然而,理解正確定義關係的底層機制至關重要。
最初,您嘗試將好友關係宣告為 template
相反,您應該使用不同的模板參數名稱,例如:
template<class T> class BE { template<class U> friend class BT; };
此聲明表示任何BT 類,無論其模板如何參數,是所有具有匹配模板參數的BE 類的友元。
考慮以下範例以進一步闡明不同類型的友元關係:
template<typename T> struct foo { template<typename U> friend class bar; };
在這種情況下,bar 是 foo 的友元,無論 bar 的模板參數如何。 bar 的任何特化都將是 foo 的任何特化的友元。
template<typename T> struct foo { friend class bar<T>; };
這裡,只有當 bar 的模板參數與 foo 的模板參數相符時,bar 才是 foo 的友元。因此,只有 bar
在您的特定場景中,朋友類bar
以上是如何在具有不同範本參數的範本類別中定義好友關係?的詳細內容。更多資訊請關注PHP中文網其他相關文章!