3
我正在處理這個任務,並且我不斷收到一個明顯先前聲明的方法的錯誤。這裏是.h文件:C++:與之前的聲明衝突?
#ifndef DLLIST_H
#define DLLIST_H
#include <iostream>
#include <fstream>
#include <cstddef>
#include "DListNode.h"
typedef int ItemType;
class DLList
{
private:
friend std::ostream & operator<< (std::ostream & out, DLList & other);
int size;
int * head;
int * tail;
void _copy(const DLList * toCopy);
void _dealloc();
public:
DLList();
DLList(const DLList & toCopy);
~DLList();
DLList & operator=(const DLList & toCopy);
int size();
void append(ItemType item);
void insert(int index, ItemType item);
ItemType pop(int index);
ItemType pop();
const DListNode & operator[] (int idx);
};
std::ostream & operator<< (std::ostream & out, const DLList & d);
#endif
誤差以int size();
被觸發,稱這與以前的聲明衝突。我知道這通常會引起我多次包括這個頭文件,但我只是不知道它發生了什麼。這些都是包括在項目中的所有文件的語句:
#include "DLList.h" // DLList.cpp
=======================================
#include "DListNode.h" // DListNode.cpp
=======================================
#include <iostream> // DListNode.h
#include <fstream>
#include <cstddef>
=======================================
#include "DLList.h" // This is the main test file
#include "DListNode.h"
#include <iostream>
我可以看到,在技術上被包含兩次DListNode.h,但無處是DLList.h包含不止一次。我只是犯了一個愚蠢的錯誤,沒有看到它? (可能是這種情況)。謝謝你的幫助!
這樣做了,謝謝! – Martin
歡迎您! –