У меня есть класс очереди, реализованный со связанным списком, и у меня есть класс с именем 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
Visual Studio выдает ошибку: Node::item использует неопределенный класс Unit ⇐ C++
Программы на C++. Форум разработчиков
1713380614
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
Подробнее здесь: [url]https://stackoverflow.com/questions/78342868/visual-studio-gives-me-an-error-nodeunititem-uses-undefined-class-unit[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия