Visual Studio выдает ошибку: Node::item использует неопределенный класс UnitC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Visual Studio выдает ошибку: Node::item использует неопределенный класс Unit

Сообщение Anonymous »

У меня есть класс очереди, реализованный со связанным списком, и у меня есть класс с именем Unit
при создании очереди, которая принимает список указателей классов модулей и запускает Visual Studio, это выдает ошибку:
Node::item использует неопределенный класс Unit.
Я использовал метод прямого объявления, но он не сработал.
Node.h
#ifndef _NODE
#define _NODE

class Unit;

template < typename T>
class Node
{
private :
T item; // A data item
Node* next; // Pointer to next node
public :
Node();
Node( const T & r_Item);
Node( const T & r_Item, Node* nextNodePtr);
void setItem( const T & r_Item);
void setNext(Node* nextNodePtr);
T getItem() const ;
Node* getNext() const ;
}; // end Node

template < typename T>
Node::Node()
{
next = nullptr;
}

template < typename T>
Node::Node( const T& r_Item)
{
item = r_Item;
next = nullptr;
}

template < typename T>
Node::Node( const T& r_Item, Node* nextNodePtr)
{
item = r_Item;
next = nextNodePtr;
}
template < typename T>
void Node::setItem( const T& r_Item)
{
item = r_Item;
}

template < typename T>
void Node::setNext(Node* nextNodePtr)
{
next = nextNodePtr;
}

template < typename T>
T Node::getItem() const
{
return item;
}

template < typename T>
Node* Node::getNext() const
{
return next;
}

#endif

Unit.h
#pragma once
using namespace std;
#include
#include"Game.h"
enum Type { EarthSol, Tank, Gunnery, AlienSol, Monster, Drone,Heal };
class Unit
{
private:
int Id;
Type mytype;
int Tj;
double Health;
int power;
int Cap;
Game* gamePtr; // can be protected

public:

Unit(Game* ptr=nullptr ,int Cap=0, double health=0, int ti=0, int power=0, int id=0, Type t=EarthSol );
void setcap(int x);
void sethealth(double h);
void setTj(int ti);
void setpower(int p);
void setid(int i);
void settype(Type t);
int getcap() const ;
double gethealth() const;
int getTj() const;
int getpower() const;
int gettid() const;
Type gettype() const;

bool Dechealth(int d) ;
bool isdead();
void virtual print() const;
void enumconv(Type t) const;
Game* getGamePtr()const;
bool inchealth(int h);

};

Unit.cpp
#include "Unit.h"

Unit::Unit(Game * ptr,int x, double h, int ti, int p, int i, Type t)
{
gamePtr = ptr;
Cap = x;
Health = h;
Tj = ti;
power = p;
Id = i;
mytype = t;
}
void Unit::setcap(int x)
{
Cap = x;
}
void Unit::sethealth(double h)
{
Health = h;
}
void Unit::setTj(int t)
{
Tj = t;
}
void Unit::setpower(int p)
{
power = p;
}
void Unit::setid(int i)
{
Id = i;
}
void Unit::settype(Type t)
{
mytype = t ;
}
bool Unit:: Dechealth(int d)
{
if (Health == 0)
return false;
else
Health = Health - d;
if (Health < 0)
{
Health = 0;
}
return true;
}
bool Unit:: isdead()
{
if (Health == 0)
return true;
else return false;

}

int Unit::getcap() const
{
return Cap;

}
double Unit::gethealth() const
{
return Health;
}
int Unit::getTj() const
{
return Tj;

}
int Unit::getpower() const
{
return power;
}
int Unit::gettid() const
{
return Id;
}
Type Unit::gettype() const
{
return mytype;
}
void Unit:: print() const
{
/* cout

Подробнее здесь: https://stackoverflow.com/questions/783 ... class-unit
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»