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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 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 вне форума Ответить с цитированием
Ответ


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



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