Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Т.е. вы предлагаете вообще запретить неявное разыменовывание указателей? Не думаю, что многие тут будут этому рады.
Пусть у каждого будет выбор
Мне такие фокусы точно не нужны.
Ну это само собой. Тут сразу утечка памяти.
Утечка памяти, говорите? А если так? )))
Утечка памяти, говорите? А если так? )))
delete item;
Так это предполагает, что объект готов что с ним так обойдутся. Многие ли предусматривают такую возможность?
Так это предполагает, что объект готов что с ним так обойдутся. Многие ли предусматривают такую возможность?
Думаю, что если кто-то пишет слово new, он должен точно знать, где в другом месте его кода находится соответствующее ему слово delete.
Пусть у каждого будет выбор
Мне такие фокусы точно не нужны.
strict уже в MQL4 используется. Как тогда там будет работать, если синтаксис языков одинаков?
Ну а в качестве защиты от таких действий можно в классе делать приватный метод:
Хотя я, честно говоря, не вижу тут проблемы. Если ты объекту класса присваиваешь что-либо, то априори ожидаешь вызова оператора копирования. Хотел - получил. Какая разница, был там указатель или объект? Тип класса тот же самый. Никакой левый класс ты присвоить не сможешь. Поэтому всё это больше похоже на пустое занудство.
Вот в противоположном случае, где слева указатель - другое дело. Там ты мог ожидать, что присваиваешь что-то указателю, а оказалось - копируешь объект.
Вот в противоположном случае, где слева указатель - другое дело. Там ты мог ожидать, что присваиваешь что-то указателю, а оказалось - копируешь объект.
И запрещать это нельзя, иначе не получится скопировать объект, когда, действительно, нужно.
В итоге, нужно оставлять все, как есть. Просто отдавать себе отчет, что делаешь.
И запрещать это нельзя, иначе не получится скопировать объект, когда, действительно, нужно.
В итоге, нужно оставлять все, как есть. Просто отдавать себе отчет, что делаешь.
О! Сказано главное.
А много ли здесь народа, ориентирующегося в режимах управления памятью? Понимающего, в чем разница между AUTOMATIC и DYNAMIC.
И что-нибудь слышавшего о STATIC и BASED (хотя, это - необязательно).
И запрещать это нельзя, иначе не получится скопировать объект, когда, действительно, нужно.
В итоге, нужно оставлять все, как есть. Просто отдавать себе отчет, что делаешь.
Почему не получится? Есть же операторы * и & для приведения к тому, что требуется.
Где есть * ?