Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 13.11.2008, 09:44   #1
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Адрес: Сибиряша
Сообщений: 131
Репутация: 45

icq: 619817361
По умолчанию проблемы с композицией классов

Подскажите, пожалуйста, у меня проблемы с композицией классов.
Код:

/*композиция уровня*/
class game::level {
	
//code…

protected:
typedef vector<object*> vectorOfObjects;
	vectorOfObjects objects;

	class levelEditor;	//редактор уровня полное определение где-то ниже…
	class levelFile;		//загрузка / сохранение…

	levelEditor* 	editor;
	levelFile*	file;
	
//code…
};

В *editor и *file надо организовать доступ к objects. Как это можно сделать?
.pixel вне форума  
Старый 14.11.2008, 11:52   #2
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Адрес: Сибиряша
Сообщений: 131
Репутация: 45

icq: 619817361
По умолчанию

Все, всем спасибо за ваше безмолвие. Своим умом дошел... пришлось, правда, немножко перестроить все... описания вынести… а ссылку передавать через конструктор.
Набросок…
Код:

class game;
class level;
class levelfile;
class leveldata;

class leveldata {
public:
	int check;
};

class levelfile {
private:
	leveldata* pdata;
public:
	levelfile( leveldata* _leveldata ) : pdata(_leveldata) {} ;
	void save(const char*) ;
	void load(const char*);
	~levelfile() { pdata=0; };
};

class level {
	leveldata* data;
public:
	levelfile* file;
	level() { file=new levelfile(data);  };	
	~level() { delete file; };
};

class game {	
public:
	level* runinglevel;
	game() { runinglevel=new level(); } ;
	void loadlevel(const char*);
	void end();
	~game() {delete runinglevel; };
};

И все ради такого рода гибкости в коде:
Game mygame;
mygame.runinglevel->file->save("1.txt");


Зы: управители судеб post’овских можете прикрывать темку.
__________________
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума  
Закрытая тема

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
агрегирование классов M_Yuri Общие вопросы Delphi 3 12.02.2008 19:31
использование множества классов studenth Общие вопросы C/C++ 5 08.11.2007 15:57
Проблемы с иерархией классов NecroSlider Помощь студентам 2 15.04.2007 21:57
экспорт классов из Dll Alar Общие вопросы Delphi 0 29.10.2006 22:53


21:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru