Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация хранилища настроек 
:(
    Опции темы
REZiaMIX
Дата 25.5.2009, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 3.11.2007

Репутация: нет
Всего: 4



Думаю как бы получше в плане красоты заделать такой функционал:
Есть несколько классов , которых по своему ходу должны знать, из какой папки читать файлы.
Папка эта определяется на стадии загрузки программы.
Соответственно классы распиханы по отдельным .h .cpp файлам.

Как организовать подачу нужных параметров классам?
Есть некоторые варианты:
Глобальный класс
Код

class CSettings
{
   std::string getpath1()
   {
           return ........;
   };
}settings_instance;
#include "class1.h"
#include "class2.h"

И в классах обращаться к глобальному контейнеру.
Но уверен - не красиво.

Singleton, но как его в данном случае 'подать' классам?.
Есть вариант глобальной функции:
Код

std::string Engine::GetFullPath()
{
.....
}


Не все равно кажись неверный подход!
Подскажите)


Это сообщение отредактировал(а) REZiaMIX - 25.5.2009, 01:24


--------------------
user posted image
PM MAIL   Вверх
NightmareZ
Дата 25.5.2009, 03:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 10.8.2006

Репутация: 1
Всего: 13



У меня есть статический класс Settings, в нём все настройки программы.


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
Cheloveck
Дата 25.5.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 3
Всего: 32



Код

class Settings
{
public:
    static int foo();
    static void setFoo(int f);
private:
    static int foo_;
};

int Settings::foo_ = 0;

int Settings::foo()
{
    return foo_;
}

void Settings::setFoo(int f)
{
    foo_ = f;
}

int main()
{
    int x;
    // Получаешь значение.
    Settings::setFoo(x);
}


Как-то так.


--------------------
user posted image
PM Jabber   Вверх
jonie
Дата 25.5.2009, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



http://www.boost.org/doc/libs/1_39_0/libs/.../doc/index.html
можно в бинарник, можно в XML... просто и со вкусом


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0908 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.