0 / 0 / 0
Регистрация: 11.08.2018
Сообщений: 2
|
||||||
1 | ||||||
Оцените Stack11.08.2018, 02:25. Показов 549. Ответов 6
0
|
11.08.2018, 02:25 | |
Ответы с готовыми решениями:
6
Есть ли связь между STL-stack и stack - высокопроизводительная память? Ошибка: "Unhandled exception: Stack cookie instrumentation code detected a stack-based buffer overrun" stack Stack overflow |
11.08.2018, 04:28 | 2 |
конструктора нет, деструктора нет, конструктора копий нет,
о move семантике не заикаюсь даже класс ничем не автоматизирован - пользователя заставляют фактически вручную выделять память методами add()/exclude() автор точно не забыл, что он стек делает, а не массив и не вектор? Такое чувство, что половина кода тупо из другого подобного класса скопирована. Добавлено через 2 минуты поправка, add/exclude и правда вызываются не вручную, как я подумал, а из push() pop() Тогда почему они публичные?
0
|
Модератор
13722 / 10919 / 6478
Регистрация: 18.12.2011
Сообщений: 29,148
|
|
11.08.2018, 09:41 | 3 |
Распространенные ошибки:
Нарушение правила ТРЕХ.
0
|
5 / 5 / 1
Регистрация: 20.07.2018
Сообщений: 24
|
|
11.08.2018, 10:02 | 4 |
Желательно было бы посмотреть сначала реализацию стека у других людей, а так же почитать про конструктор копирования,оператор присваивания и деструктор : вы не чистите память,выделенную динамически,а про копирование и присваивание вообще молчу . Функции-члены execlude и add,исходя из контекста,являются чисто вспомогательными функциями,которые желательно было бы занести в private или хотя бы в protected (зачем нам нужны детали реализации? это ведь порождает зависимость).
Хорошо,кстати,все эти темы рассмотрены в книге Стивена Праты (Хоть там стек и постоянного размера).
0
|
139 / 67 / 46
Регистрация: 15.10.2015
Сообщений: 308
|
||||||
11.08.2018, 14:24 | 5 | |||||
Вот мой пример стека. Тоже хотел бы выслушать критиу. Что можно упростить, улучшить?
0
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
11.08.2018, 19:19 | 6 |
Reavolt, здравствуйте, по поводу класса не могу ничего сказать т к сам вхожу в число начинающих программистов на C++
Хочется узнать о паре вещей в вашем коде, вы не могли бы объяснить причину почему вы тут используете двойную ссылку(могу ошибаться с термином)? Что такое move? Зачем он тут нужен
0
|
139 / 67 / 46
Регистрация: 15.10.2015
Сообщений: 308
|
|
11.08.2018, 19:46 | 7 |
no swear,
1) Это конструктор перемещения и оператор присваивания перемещением (подробнее читайте про move semantics и правило 5). 2) std::move() - это функция, которая создает ссылку rvalue для объекта. (фактически ничего не перемещает)
1
|
11.08.2018, 19:46 | |
11.08.2018, 19:46 | |
Помогаю со студенческими работами здесь
7
Stack overflow Stack overflow. Stack was corrupted Stack и указатели c++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |