У меня проблема, класс Rectangle не работает должным образом в TwoDimTree.h Например, «Rectangle Extent;» похоже, работает, но когда я пытаюсь использовать его, он говорит, что класс участника не найден.использование неопределенного типа C++, класс
Я хочу использовать его как «Extent.get_Top;» , но я не могу это сделать.
Также в списке ошибок, которые я получил. Ошибка 7 ошибки C2027: использование неопределенного типа «Прямоугольник»
Мои заголовки внизу. Я действительно не смог найти свою ошибку. Спасибо за помощь.
Моего 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;
};
Вы смотрите, чтобы создавать общий связанный список, но жёстко он должен иметь свойства, связанные с прямоугольником, из-за 'check_Rectangle' (зачем нужен список не прямоугольников?) и классы друзей. На самом деле я бы проверял, что вам нужно так много друзей. Также функция 'search' возвращает копию содержащегося объекта. –
Я использую эту программу, чтобы найти только прямоугольники. –