私はNodeクラスのwhiceがNode型の要素を含むBinaryTreeクラスのフレンドです。私はどのタイプのBinareTreeを作成したいので、私は両方のクラスでテンプレートを使用しています。このコードのように:クラステンプレートとフレンドクラス
私はそれをテンプレートとして使用する場合、私は友人のクラスBinaryTreeの宣言であなたに必要なのは何な構文template <class T>
class Node
{
T value;
Node<T> *left, *right;
friend template <typename T> class BinaryTree; // here is the problem
};
template <class Y>
class BinaryTree{...};
?
BinareTree<int> tree;
は私が考え、この任意のより良い方法があります: 私の目標は、書くことができるようにするのですか? ありがとう!
は、覚えておいてください「友人」を使うときに最初に質問するのは、「友人」を使う必要が本当にありますか? – Kupiakos
@ Kupiakos [友人関係をリファクタリングする方法]がありますが(http://stackoverflow.com/questions/27492132/how-can-i-remove-refactor-a-friend-dependency-declaration-properly)それは時には(例えばプラグマティズムのために)理にかなっています。あなたがしていることをよく知っていれば、単に「友人」を使うだけです。 –
@ Kupiakosはい、私はBinaryTreeクラスのNodeクラスのプライベートメンバーにアクセスしたいからです。 – Copacel