Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это значит надо будет создавать экземпляр оператором new.
Так я вот одного не пойму. Какие веские причины принуждают к использованию оператора new ? Без него типа никак?
Он нужен, если требуется динамическое создание объектов. Если заранее неизвестно какое количество объектов потребуется и какие типы объектов.
Так я вот одного не пойму. Какие веские причины принуждают к использованию оператора new ? Без него типа никак?
Он нужен, если требуется динамическое создание объектов. Если заранее неизвестно какое количество объектов потребуется и какие типы объектов.
Можно с помощью динамических массивов классов. В MQL это прокатит. В С++ могут быть проблемы с инициализацией классов членов класса. Поэтому, лучше в массив класть указатель, но не простой, а умный. Чтобы не заморачиваться с инициализацией класса и очисткой памяти.
Как "читается" данная конструкция?
А, в частности:
Я вот смотрю, и в упор не втыкаю в суть происходящего...Как "читается" данная конструкция?
ptr приводится к типу (классу) cFather и вызывается его (cFather) метод GetData()
как-то так..
ptr приводится к типу (классу) cFather и вызывается его (cFather) метод GetData()
как-то так..
Жесть какая-то... Я так примерно и думал, но.. это уж слишком, что бы приводить к типу (классу). В программировании и так не советуют особо приводить, на сколько я слышал. А тут не то что к стандартному типу приведение, а к классу.
В общем-то вернёмся ещё разок к этому коду:
Здесь в параметрах прототипа функции f чётко видно, что функция f принимает в параметрах метод класса cFather. Далее по коду в СТАРТЕ мы видим следующую ситуацию:
f(ptr); // вернет 3
Тут уже функция f принимает в параметрах не метод класса cFather, а, судя по всему, указатель на класс cChild. Т.к. cChild obj, *ptr = GetPointer( obj );
Логика в чём?
мм.. логика где ?
в методе f() логика, думаю такова, что входящий параметр будет корректно обрабатываться для cFather (или его наследников)
мм.. логика где ?
в методе f() логика, думаю такова, что входящий параметр будет корректно обрабатываться для cFather (или его наследников)
Т.е.
тут *p - указатель на cFather ?
Одновременно, изучаю С++ и меня немного путает схожая лексика. Хотя указатели то тут не те чутка.
Т.е.
тут *p - указатель на cFather ?
Одновременно, изучаю С++ и меня немного путает схожая лексика. Хотя указатели то тут не те чутка.
Уже пару недель как назрел вопросик. Решил задать. Сложности там особо нет, но логически интересно имеет ли место такой вариант. Вот код:
Публичные функции в данном коде только 2:
А 2 приватные функции вызываются непосредственно через публичную, а точнее публичной функций, в момент необходимости. Интересно то, что в функции void SetName(string n) параметр n, а в обоих приватных методах private: string GetFirstName(string full_name) и string GetLastName(string full_name) почему-то параметр задан не такой же. Хотя если взять именно этот код (не другой), то здесь данные приватные методы вызываются через публичные с теми же параметрами и иначе никак. Тогда зачем давать параметрам другие имена?
Надеюь вопрос понятен.