Ошибки, баги, вопросы - страница 2358
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
О, оказывается в мкл имеется автогенерация конструктора копирования (я думал, что его вообще нет, т.к. нельзя Class obj(other_obj), только через =). Но почему он не генерится если:
default и delete не поддерживаются
Конструктор копирования по умолчанию, оказывается пока сделали.
Только оператор копирования, т.е. для конструкций:
Сначала вызывается конструктор CFoo по умолчанию, а затем оператор копирования
вызывается оператор копирования, а не конструктор копирования.
default и delete не поддерживаются
Это да, но отменять генерацию копирующего конструктора нужно лишь в случае, когда есть пользовательский копирующий конструктор, разве нет? А не любой пользовательский.
Т.е. объект не должен позволять частично заменять свои внутренности.
Это какое-то искусственное самоограничение... я бы даже сказал - узость мышления
В чем проблема?
Нашёл у себя такую конструкцию... и все работает... нормально. По сему предлагаю Разработчикам оставить все как есть... по крайней мере если соответствующие операторы\конструкторы определены явно
Это какое-то искусственное самоограничение... я бы даже сказал - узость мышления
В чем проблема?
Нашёл у себя такую конструкцию... и все работает... нормально. По сему предлагаю Разработчикам оставить все как есть... по крайней мере если соответствующие операторы определены явно
Проверьте для начала, как в C++ всё работает. Видимо его правила придумывали "узкомыслящие".
А городить каждый раз затычки, чтобы защититься от неправильной архитектуры языка... Нет уж, надо изначально делать по уму. Имею ввиду язык
Проверьте для начала, как в C++ всё работает. Видимо его правила придумывали "узкомыслящие".
А городить каждый раз затычки, чтобы защититься от неправильной архитектуры языка... Нет уж, надо изначально делать по уму. Имею ввиду язык
Специально для Вас перепроверил с учетом https://www.mql5.com/ru/forum/1111/page2358#comment_10003995
Все нормально DJ
Специально для Вас перепроверил с учётом
Все нормально DJ
Какой компилятор у вас?
У меня на VS 2010:
binary '=' : no operator found which takes a right-hand operand of type 'A' (or there is no acceptable conversion)
p.s. Я только не очень понял, что значит "с учётом"? Речь шла о допустимости неявного копирования базового класса в производный.
В Visual Studio мой пример тоже работает. Я имел ввиду явный оператор копирования и пояснил это кодом.
Написал на всякий случай, чтобы при запрете нервного явное заодно не запретили бы случайно
В Visual Studio мой пример тоже работает. Я имел ввиду явный оператор копирования и пояснил это кодом.
О явном операторе не шла речь. Я говорил о недопустимости неявного оператора в данном случае, которую вы назвали "узостью мышления", а это не так.
Если требуется провести копирование, то в C++ нужно сначала явно кастить b к нужному типу. Ибо такое копирование - это нарушение инкапсуляции объекта. Поэтому ни о какой неявности речи быть не должно.
Я имел ввиду явный оператор копирования и пояснил это кодом.