Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2013, 02:17   #1
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию раздельная трансляция

программу делю на части можно сказать первый раз.
проблема вот такая:
в одном файле есть класс 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
denrubun вне форума Ответить с цитированием
Старый 02.02.2013, 02:29   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

http://www.google.ru/search?client=o...hannel=suggest
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 02.02.2013, 02:30   #3
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Должно помочь forward declaration.

Код:
class character; //FORWARD

class inventory{
	const character &_owner;
public:
	inventory(const character &);
};
EUGY вне форума Ответить с цитированием
Старый 02.02.2013, 02:50   #4
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию

точно, спасибо, благодарствую)
denrubun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МКС. Онлайн-трансляция raxp Свободное общение 28 30.06.2012 18:23
(C++) Многофайловый проект/раздельная компиляция Troi666 Помощь студентам 8 06.06.2009 23:59
раздельная компилляция Dimarik Общие вопросы C/C++ 34 16.05.2009 15:19
C++. Наследование. Раздельная компиляция Matthew Помощь студентам 0 08.05.2009 21:03
Трансляция кода из Delphi в C phobos Помощь студентам 9 21.04.2007 18:26