11 / 11 / 3
Регистрация: 14.01.2011
Сообщений: 113
|
||||||
1 | ||||||
Ошибка при завершении программа.18.06.2011, 20:19. Показов 2908. Ответов 47
Метки нет (Все метки)
Проблема в следующим когда я создаю динамический массив объект при завершении программы вылетает ошибка не пойму в чем проблема ???
0
|
18.06.2011, 20:19 | |
Ответы с готовыми решениями:
47
Ошибка при завершении программа. Visual studio: консольная программа закрывается при завершении Ошибка при завершении программы ошибка при завершении программы |
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
|
||||||
20.06.2011, 19:12 | 41 | |||||
как вариант
1
|
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,880
|
|||||||||||
20.06.2011, 20:42 | 42 | ||||||||||
no0ker, зачем столько ифов? Раньше и я так писал, но ведь удаление нулевого указателя это безболезненная операция
кстати, имхо, init() должна быть если не в private, то как минимум в protected.
0
|
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
|
|
20.06.2011, 20:58 | 43 |
schdub, согласен. с условиями перебор =)
у меня init() это установка свойств объекта, ума не приложу как можно его засунуть в private. как тогда устанавливать свойства уже созданного объекта? создавать временный объект конструктором инициализации и использовать '='? Не по теме: интересно, что вы скажете по поводу функции addbook() =)
0
|
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,880
|
||||||
20.06.2011, 22:15 | 44 | |||||
по идее, установка свойств объекта должна происходить в конструкторе (!). Когда мы конструируем объект Book, то скорее всего мы уже знаем, и автора, название и id. Если все же необходимо изменить одно из полей экземпляра данного класса, то целесообразно написать соответствующие сеттеры setTitle(), setAuthor() и setId(), ксати, геттеров в интерфейсе класса я не наблюдаю
Добавлено через 5 минут Не по теме: у меня произошел Stack Overflow на строке 98 при попытке распарсить выражение CBook *&book - за почти 8 лет программирования на С++ подобную конструкцию вижу впервые :D. Кстати, имхо целесообразнее данный аргумент назвать books. Добавлено через 9 минут Но самое главный недостаток init() в том, что благодаря данной функции пользователи класса могут попасть в беду из-за утечек памяти. Например:
1
|
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
|
||||||
21.06.2011, 16:50 | 45 | |||||
1
|
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,880
|
|
21.06.2011, 16:54 | 46 |
да так можно
а что если пользователь класса хочет изменить только ОДНО из полей класса?
0
|
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
|
|
21.06.2011, 19:57 | 47 |
Добавлено через 2 часа 31 минуту пока работает - и трогать боюсь. =) Добавлено через 14 минут поиск рулит что такое *&
0
|
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,880
|
|
21.06.2011, 23:48 | 48 |
0
|
21.06.2011, 23:48 | |
21.06.2011, 23:48 | |
Помогаю со студенческими работами здесь
48
Ошибка компилятора при завершении программы Ошибка при завершении работы программы В чем ошибка? При запуске программы открывается консоль и сразу ошибка о завершении программы Ошибка "Stack around the variable 'a' was corrupted" при завершении программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |