)みなさんこんにちは! 私はDoubleNode(二重リンクリストノードを表す)とDoublyLinkedList(それは実装です)という2つのクラスを持っています。 DoubleNodeクラスの中では、DoublyLinkedListはfriendクラスであると指定していますが、IDEとコンパイラはDoubleNodeクラス内でDoublyLinkedListクラスを再定義するのではなく、 "DoublyLinkedListのRedefinition 」などの記号の異なる種類の」ここ は私のコードです:リンクリストノードのC++フレンドクラス
#ifndef DoubleNode_h
#define DoubleNode_h
using namespace std;
#include "DoublyLinkedList.h"
template <typename Type>
class DoubleNode {
private:
Type elem;
DoubleNode<Type>* next;
DoubleNode<Type>* prev;
friend class DoublyLinkedList<Type>;
public:
DoubleNode (Type const& e, DoubleNode* a, DoubleNode* b) {
elem = e;
next = a;
prev = b;
}
Type getData() const {
return elem;
}
DoubleNode * getNext() const {
return next;
}
DoubleNode * getPrevious() const {
return prev;
}
};
DoublyLinkedList.h
#ifndef DoublyLinkedList_h
#define DoublyLinkedList_h
#include "DoubleNode.h"
template <typename Type>
class DoublyLinkedList {
private:
DoubleNode<Type>* head;
DoubleNode<Type>* tail;
int size;
public:
DoublyLinkedList() {
head = new DoubleNode<Type>;
tail = new DoubleNode<Type>;
head->next = tail;
tail->prev = head;
head->prev = nullptr;
tail->next = nullptr;
size = 0;
}
~DoublyLinkedList() {
while (!empty())
pop_front();
delete head;
delete tail;
}
//Accessors
int size() const{
return size;
}
...
一つ再び、コンパイラはエラーを与える 『の再定義『記号のDoublyLinkedList』などの別の種類を』
ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –
πάνταῥεῖそれはここにあります。 DOの部分を検索するために@Swift THXの間にテキストがない場合は、ソースブロックを1つにまとめます。 – Swift
@Swift THX –