簡體   English   中英

模板類C ++朋友函數

[英]Template classes c++ friend functions

我的代碼具有如下所示的相同結構。 我在一個頭文件中定義了兩個容器類,並且每個容器類都有一個參數為另一個類的朋友函數,因此我遇到了編譯錯誤,類似於“ Class2”(未聲明的標識符)。

嘗試了幾件事,但沒有解決。 我認為如果在兩個模板中再添加一個模板參數V並替換Class2<T>可能是一個解決方案,但是如果我在程序中使用這些容器,事情會變得很復雜,我還想將Class1和Class2分離為不同的標題,然后包括在Class1中,Class2,反之亦然,但是我實際上懷疑這是否可以工作。

我真的不知道該如何解決這個問題,因此非常感謝您的幫助!

template<class T>
class Class1
{
  ...
  friend void function1(Class1<Class2<T>>&, const Class2<T>&);
  ...
};

template<class V>
class Class2
{
   ...
   friend void function2(Class1<V>);
   ...
};

在文件的開頭添加對Class2的前向聲明:

template<class V> class Class2;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM