программу делю на части можно сказать первый раз.
проблема вот такая:
в одном файле есть класс character с полем типа inventory
в другом - класс inventory с полем-ссылкой на character
Код:
#ifndef INVENTORY
#define INVENTORY
#include "character.h"
class inventory{
const character &_owner;
public:
inventory(const character &);
};
#endif
Код:
#ifndef CHARACTER
#define CHARACTER
#include "creature.h"
#include "inventory.h"
typedef unsigned char byte;
class character : public creature{
_inventory bag;
public:
character(byte race, char *name);
};
#endif
на выходе получаю вот такой списочек сигнализаций о том что что-то не так:
Код:
1>------ Построение начато: проект: L2zero, Конфигурация: Debug Win32 ------
1>Компиляция...
1>character.cpp
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(10) : error C2143: синтаксическая ошибка: отсутствие ";" перед "&"
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(19) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(19) : error C2143: синтаксическая ошибка: отсутствие "," перед "&"
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\character.h(10) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "bag"
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\character.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\character.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>main.cpp
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(10) : error C2143: синтаксическая ошибка: отсутствие ";" перед "&"
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(19) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\inventory.h(19) : error C2143: синтаксическая ошибка: отсутствие "," перед "&"
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\character.h(10) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "bag"
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\character.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\character.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>inventory.cpp
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\character.h(10) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "bag"
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\character.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\documents and settings\admin\мои документы\c++\l2zero\headers\character.h(10) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>Создание кода...
1>Журнал построения был сохранен в "file://c:\Documents and Settings\Admin\Мои документы\C++\L2zero\Debug\BuildLog.htm"
1>L2zero - ошибок 19, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
сообщения создают впечатление, что он в упор не видит эти классы в разных файлах.
кстати проблема только с этими двумя классами, все остальные работают нормально где угодно, я не знаю как, но думаю это связанно именно с тем что в inventory ссылка на character, а сам character содержит inventory