Description du problème
Comme le titre l'indique, j'ai récemment appris les structures de données et les implémenté en C++. J'ai rencontré les problèmes suivants lors de l'implémentation d'un arbre binaire.
Dans le code du livre, l'arbre binaire se compose de deux structures de donnéesBinaryTree
和BinartTreeNode
, et toutes deux utilisent des modèles, comme suit :
template <class T>
class BinaryTreeNode{
friend class BinaryTree<T>;
private:
T data;
BinaryTreeNode<T> *left;
BinaryTreeNode<T> *right;
/*...其他...其他...其他...*/
}
template <class T>
class BinaryTree{
private:
BinaryTreeNode<T> root;
/*...其他...其他...其他...*/
}
Mais j'ai rencontré l'erreur suivante lors de sa mise en œuvre :
Exemple de code :
template <class T>
class BinaryTreeNode {
friend class BinaryTree<T>; /* 消除该句后可通过编译 */
private:
T info;
BinaryTreeNode<T> left;
BinaryTreeNode<T> right;
};
template <class T>
class BinaryTree {
private:
BinaryTreeNode<T> *root;
};
Erreur :
1>e:itc++binarytreebinarytreemybianrytree.h(20): error C2989: “BinaryTree”: 类 模板 已经声明为非类 模板
erreur c2989
Capture d'écran :
Environnement :
visual studio 2017 + win10 (mac double système)
Désolé tout le monde ! !
ps : La version mobile de segmentfault est vraiment une merde. Après m'être tenu le nez et l'avoir utilisée pendant si longtemps, j'ai réalisé que je ne pouvais pas saisir le signe supérieur ou inférieur à