
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Оператор new создаёт экземпляр класса и в связке с ним идёт вызов конструктора. Это прописано в синтаксисе поэтому по другому вызвать не получится.
Я исходил вот из этого примера:
Здесь, грубо говоря, скобок (вызова конструктора) нет. Возможно, что я чего-то пока недопонимаю.Вот этот код почти ничем от множественного наследования не отличается.
Фактически класс С_С через соответствующие указатели имеет доступ к данным С_А и С_В.Я исходил вот из этого примера:
Здесь, грубо говоря, скобок (вызова конструктора) нет. Возможно, что я чего-то пока недопонимаю.А чё сразу я, это не ко мне, это в центральную прачечную, я скобки не брал :о)
У меня компилятор на отсутствие скобок не ругается...
В общем, неожиданно возник вопрос: а как правильно? Или без разницы, есть скобки или нет?
У меня компилятор на отсутствие скобок не ругается...
В общем, неожиданно возник вопрос: а как правильно? Или без разницы, есть скобки или нет?
Если работает и так и так то это скорее вопросы унификации синтаксиса. Главное чтоб на скорость не влияло.
ЗЫ А так вообще работает? чесно говоря я не проверял, я всегда пишу со скобками.
Если работает и так и так то это скорее вопросы унификации синтаксиса. Главное чтоб на скорость не влияло.
ЗЫ А так вообще работает? чесно говоря я не проверял, я всегда пишу со скобками.
Не читал описание создание динамически объектов классов в MQL5, но в С++ можно и без скобок (вызывается стандартный конструктор), и со скобками (вызывается конструктор в зависимости от параметров в скобках). Пример:
class CExample
{
int param;
public:
CExample();
CExample(int x);
~CExample();
}
CExample::CExample(int x)
{
param = x;
}
//..........вызов..............
//..где-то в тексте программы..
CExample *ex1 = new CExample; //создание с конструктором CExample();
CExample *ex1 = new CExample(); //создание с конструктором CExample();
CExample *ex1 = new CExample(value); //создание с конструктором CExample(int x);
В mql5 в конструктор нельзя передавать параметры.
Не читал описание создание динамически объектов классов в MQL5, но в С++ можно и без скобок (вызывается стандартный конструктор), и со скобками (вызывается конструктор в зависимости от параметров в скобках). Пример:
Понял, спасибо за простое и понятное разъяснение. Получается, что скобки - это для возможных параметров.
А описание создания динамических объектов классов в MQL5 очень лаконичное:
Справочник MQL5 / Основы языка / Операторы / Оператор создания объекта new
Справочник MQL5 / Основы языка / Типы данных / Указатели объектов