Re: Как запретить повторное использование конструктора?
Добавлено: 02 сен 2015, 14:52
Да я вижу, как ты их писал. Сочувствую человеку, который их суппортит.Сионист писал(а):Как же я их писал то?
форум программистов
https://www.developing.ru/
Да я вижу, как ты их писал. Сочувствую человеку, который их суппортит.Сионист писал(а):Как же я их писал то?
Я и не сомневался. Про исключения у Шилдта ты тоже не распарсил. И не нужно говорить, что они там не были описаны. Ты просто не всё понимаешь, когда читаешьСионист писал(а):Не распарсил.
Я не пытаюсь казаться, тем более важным. И неучи кандидатские не только не защищают, но даже поступить в аспирантуру не способны. А по поводу показа,Romeo писал(а):Уууу, вот тут мне уже нечего добавить. Ну-ка покажи мне, как по-твоему должен выглядеть настоящий синглтон в твоём понимании. Говоришь особенности реализации? Покажи мне свою реализацию.
Сионист, ты просто неуч, который пытается казаться важным и умным
Код: Выделить всё
class singelton
{
private:
static singelton *first;
public:
singelton ()
{
if (first==nullptr)
{
first=this;
}
this=first;
}
singelton (const singelton &Original)
{
this=&Original;
}
...
};
Описаны. Но очень кратко и очень туманно. Понятно только каким словом бросать и как ловить одним catch все исключения.Romeo писал(а):Я и не сомневался. Про исключения у Шилдта ты тоже не распарсил. И не нужно говорить, что они там не были описаны. Ты просто не всё понимаешь, когда читаешь![]()
Это не множество по определению. Хоть в том, хоть в другом случае. В одном случае имён объекта может быть сколько угодно, но они все - синонимы друг друга, то есть в принципе множество будет ссылок, а объект то один. В другом случае множество будет оболочечных объектов, в которые завёрнут один и тот же объект-поле. Множества целевых объектов нет ни в том, ни в другом случае.Romeo писал(а):По поводу реализации. Это не синглтон по определению, так как можно создать множество объектов этого класса.
Гипотетический язык при том, что сингилтон - не специфически c++-ная языковая конструкция, а шаблон проектирования, имеющий смысл во всём ООП. И если реализация даже вытекает из особенностей языка, это ещё не означает, что сам паттерн требует именно такой реализации. Можно вообще включить слово single в язык и разрешить такой синтаксис:Romeo писал(а):На счёт "возможен" язык, я так и не понял. Ты сейчас пишешь на С++ или на придуманном языке? При чём тут вообще какой-то там язык, который ты изобрёл на скорую руку? Проект у тебя написан на С++ и говорили мы везде в контексте С++. Так что приведи мне честный сиглтон без скрытых конструкторов. Если не можешь привести такой пример, то просто признай это, и я покажу тебе, кандидату-неучу, как должен выглядеть настоящий синглтон на С++. Более того, смею заметить, что архитектурно он будет выглядеть точно так же и на других современных языках программирования, а именно на C# и на Java.
Код: Выделить всё
class A
{
public:
A () single;
};
Код: Выделить всё
class Singleton
{
public:
static Singleton* GetInstance()
{
if (m_pSingle == NULL)
{
m_pSinge = new Singleton();
}
return m_pSingle;
}
void DoSomething() { ... }
// some non-static methods
private:
// some non-static fields
private:
Singletone()
{
// some initialization
}
static Singleton* m_pSingle;
};
void main()
{
Singleton::GetInstance()->DoSomething();
}
По Вашей же логике объекта здесь нет вообще.Romeo писал(а):Код: Выделить всё
class Singleton { public: static Singleton* GetInstance() { if (m_pSingle == NULL) { m_pSinge = new Singleton(); } return m_pSingle; } void DoSomething() { ... } // some non-static methods private: // some non-static fields private: Singletone() { // some initialization } static Singleton* m_pSingle; }; void main() { Singleton::GetInstance()->DoSomething(); }