Ошибки, баги, вопросы - страница 1133

 
A100:

А мне не говорит

Повторюсь: Такой объект может быть создан внутри самого класса, а указатель на такой объект может быть создан и вне класса

Так скажет:

class B {
        B() {}
};
void OnStart()
{
        B *b;
        b=new B;
}
 
Fleder:

Так скажет:

Можно и объект создать, если нужно

class B {
        B( int ii ) : i( ii ) {}
        int i;
public:
        int g() { return ( i ); }
        static B *f( int ii ) { return ( new B( ii ) ); } 
};
void OnStart()
{
        B *b = B::f( 100 );
        Print( b.g());
}
 
Zeleniy:

Что то я не понял, как сканировать сервера при подключении? Раньше я вводил имя сервера и вылетал список, я добавлял нужные (картинка 2, там добавлены сервера около  двух недель назад)  На картинке один уже не сканируются нужные сервера, не могу добавить. Что уже нельзя или как вы сами это делаете?


Надо использовать часть имени компании, но не часть имени сервера. Больше поиск по именам сервера не работает, так как он зачастую выдавал слишком большие списки совпадений и совсем не то, что хотел трейдер. 

 
Lone_Irbis:

Ага, и форекс тоже вообще лучше не использовать. Да и компьютер, если на то пошло :) Вредно вообще все это. 

А вообще фикс уже нашелся. Не очень красивый, но работает. Фикс называется "к черту это ваше ООП". %) Ошибки удалось устранить, повыпиливав все статические переменные из классов, убрав от них приставку static и сложив аккуратной кучкой рядышком. 

В общем, не знаю, чем так разработчикам не угодили статические переменные, и зачем надо было убирать фишку с их автоматической инициацией, но раз надо - так надо. Придется юзать обходные пути... 

Так и в C++ работает. Статические переменные нужно явно задавать.

Никаких проблем с этим нет. 

 
A100:


Я понял Вашу мысль.

Если экземпляр класса пытается быть рождённым какой-то внешней программой, то конструктор должен быть открыт.

Если же экземпляр "рождает сам себя" (и передаёт указатель на себя внешней программе)  - то ему доступен закрытый конструктор.

 
Renat:

Так и в C++ работает. Статические переменные нужно явно задавать.

Никаких проблем с этим нет. 

Ну вопрос же не столько в том, где еще и как работает и будут ли с этим проблемы. А в том, что раньше и без явного указания прекрасно работало.

А чтобы менять что-то, что и так уже работает, по идее желательны причины поважнее, чем "у соседей так же". :)

Но да ладно, я догадываюсь, конечно, что это не единственная причина.

 

Смысл единственного private конструктора только в том, чтобы ограничить создание производных классов,  Кроме того класс может иметь несколько конструкторов

class A {
private:
        A( int ) {}
public:
        A( int, int ) {}
};
class B : public A {
        B() : A( 0, 0 ) {}
};
 
 
Lone_Irbis:

Ну вопрос же не столько в том, где еще и как работает и будут ли с этим проблемы. А в том, что раньше и без явного указания прекрасно работало.

А чтобы менять что-то, что и так уже работает, по идее желательны причины поважнее, чем "у соседей так же". :)

Но да ладно, я догадываюсь, конечно, что это не единственная причина.

А Вы попробуйте инициализировать статические переменные в списке инициализации конструктора.
 
A100:

Смысл единстенного private конструктора только в том, чтобы ограничить создание производных классов. Кроме того класс может иметь несколько конструкторов

Ведь Вы сами являетесь разработчиком своего кода и смысл в таких ограничениях - невелик.
 

Че, у всех такая фигня с кнопками окна "MQL-Storage Фиксация"  происходит?

С кнопками чё-та... 

Причина обращения: