使用未定义的类型c ++,类

时间:2015-11-05 23:21:37

标签: c++ class visual-studio-2012

我遇到问题,Rectangle类在TwoDimTree.h中无法正常工作 例如, “矩形范围;”似乎工作,但当我尝试使用它时,它说没有找到成员类。

我想像“Extent.get_Top”一样使用它,但我无法做到。

同样在我得到的错误列表中。 错误7错误C2027:使用未定义类型'Rectangle'

我的标题在下面。我真的找不到我的错误。谢谢你的帮助。

My 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;

};

1 个答案:

答案 0 :(得分:1)

你有一个循环包含。 Rectangle.h包括twodimtree。 twodimtree包括矩形

净效果是TwoDimTree是第一个进程,并且引用了尚未定义的Rectangle

从矩形中删除包含twodimtree