2015-11-05 141 views
-1

我有一個問題,在TwoDimTree.h中Rectangle類不能正常工作 例如, 「Rectangle Extent;」看起來像工作,但是當我嘗試使用它說它沒有找到成員類。使用未定義的類型C++,類

我想使用它像「Extent.get_Top;」 ,但我無法做到。

也在我得到的錯誤列表。 錯誤7錯誤C2027:使用未定義類型'矩形'

我的標題是below.I真的找不到我的錯誤。感謝您的幫助。

我TwoDimTree.h

#include <string> 
#include "Rectangle.h" 
#include "LinkedList.h" 
using namespace std; 
class TwoDimTreeNode 
{ 
public: 
    TwoDimTreeNode(Rectangle,TwoDimTreeNode*,TwoDimTreeNode*,TwoDimTreeNode*,TwoDimTreeNode*,LinkedList<Rectangle>,LinkedList<Rectangle>); 
    TwoDimTreeNode(Rectangle); 
    Rectangle get_Extent(); 
private: 
    Rectangle Extent; 
    LinkedList <Rectangle> Vertical; 
    LinkedList <Rectangle> Horizontal; 
    TwoDimTreeNode*TopLeft; 
    TwoDimTreeNode*TopRight; 
    TwoDimTreeNode*BottomLeft; 
    TwoDimTreeNode*BottomRight; 


    friend class Rectangle; 
    friend class LinkedList<Rectangle>; 
}; 

我Rectangle.h

#include <string> 
#include "TwoDimTreeNode.h" 
#include "LinkedList.h" 

using namespace std; 
class Rectangle { 
public: 
    Rectangle(int,int,int,int); 
int get_Top(); 
    void set_Top(int); 
private: 
    int Top; 
    int Bottom; 
    int Right; 
    int Left; 

    friend class TwoDimTreeNode; 
    friend class LinkedList<Rectangle>; 

}; 

我Linkedlist.h

#include <string> 
#include "Rectangle.h" 
#include "TwoDimTreeNode.h" 
using namespace std; 

template <class Object> 
struct node 
{ 
    Object element; 
    node*next; 
    node(const Object & theElement = Object(),node*n=NULL) 
     :element(theElement), next(n){} 
    friend class Rectangle; 
    friend class TwoDimTreeNode; 
}; 
template <class Object> 
class LinkedList 
{ 
public: 
    LinkedList(); 
    int get_Length(); 
    Object search(int,int); 
    bool check_Rectangle(Object); 
private: 

    int length; 
    node<Object>*head; 

}; 
+0

你看看要創建一個通用的鏈表,但你硬編碼它有'check_Rectangle'(爲什麼非矩形列表需要這個?)和朋友類的矩形包含屬性。事實上,我會檢查你需要這麼多的朋友。你的'search'函數也返回所包含對象的一個​​副本。 –

+0

我正在使用該程序只能找到矩形。 –

回答

1

你有一個循環包括。 Rectangle.h包含twodimtree。 twodimtree包括矩形

的淨效應是TwoDimTree是過程第一和referes到矩形那不是定義尚未

刪除包括矩形twodimtree

+0

是的,謝謝它的工作! –