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

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

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


Ответ
 
Опции темы
Старый 26.11.2010, 02:31   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение паттерн singleton

Проблема: Написал 4 паттерна, хотел раскинуть на 5 проектов (4 паттерна и main, где они срабатывают ). (если не задействовать паттерн singleton, то все 3 паттерна срабатывают)Но при задействовании паттерна Singleton cтало ругаться на методы паттерна singleton , типа они уже определены. Почему нельзя переносить работу singleton(а) в отдельный cpp проект?

вот мой singleton:

// singleton.cpp
Код:
class singleton
{
private:
	singleton(){}
	static singleton *single;
public:
	static singleton *add1();
	void print1();
};

singleton *singleton::single=0;

singleton * singleton::add1()
{
	single = new singleton();
	return single;
}
void singleton::print1()
{
	cout<<" singleton method"<<endl;
}
// pattern.cpp
Код:
main()
{
,,, // задействование других паттернов
,,,
,,,

singleton *obj;
obj=singleton::add1();
obj->print1();
}
zhenya.ya вне форума Ответить с цитированием
Старый 26.11.2010, 03:11   #2
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Эмм... А вы вообще про Singleton хоть что-нибудь читали, кроме того что он может существовать только в единственном экземпляре? Смотрели ли учебные примеры или образцы промышленного кода? Смотря на ваш код, я в этом сильно сомневаюсь.
Я бы посоветовал прочитать о синглтонах у Александреску, но боюсь, что там вы мало что поймете. Поэтому попробуйте прочитать соответствующую главу в книге Банды Четырех (по паттернам проектирования), в Философии С++ (2 часть) Эккеля, еще в какой-нибудь книге, или просто найдите статью в интернете для вашего уровня знаний. Потому что не ездящий велосипед изобретать не дело.
После прочтения наверняка поймете все свои ошибки, ну а если не поймете - отпишитесь, я помогу.
still_alive вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паттерн MVP Vistar Общие вопросы .NET 0 11.09.2010 17:45


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840