|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.09.2009, 19:42 | #1 |
Новичок
Джуниор
Регистрация: 20.09.2009
Сообщений: 4
|
Необходима помощь
Здрасте всем. Делаю тестовое задание и столкнулся с неразрешимой для себя задачей. Прошу помощи тех, кто знает
Задача: Написать шаблон умного указателя для массива (auto_ptr_array). Пример использования и тестовые сценарии: Код:
Код:
Пока я смог сделать следующее: Код:
На мой взгляд я всё делаю правильно, но возникают следующие проблемы: 1) Определние, что индекс в [] вышел за пределы массива. Размер я не могу узнать никак, т.к. получаю только указатель. 2) Второй пример у меня не работает, хотя вроде я написал нужный констриктор копирования, но он не вызывается. Пожалуйста, помогите мне, уже совсем ничего не соображаю, целый день сижу с этими заданиям! Спасибо |
20.09.2009, 21:51 | #2 | ||
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Цитата:
Цитата:
Ну и там в параметре разве не нужно указывать параметр шаблона? AutoPtrArray(const AutoPtrArray<T> &ptr) |
||
20.09.2009, 23:53 | #3 |
Новичок
Джуниор
Регистрация: 20.09.2009
Сообщений: 4
|
В общем я всё сделал
Если кому интересно, то конструктор долежен выглядить следующим образом: Код:
Единственный вопрос для меня: насколько "легально" использовать функцию _msize? Я её нашёл совершенно случайно и судя по _ она далеко не является стандартной... Насчёт второй проблемы, нужно было нормально выделять память, т.к. не знал размера, всё не работало. Теперь, когда я его знаю, то всё ок: Код:
|
21.09.2009, 10:07 | #4 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Цитата:
Зачем это её выделять? И вообще мне реализация не нравится. Код:
по идее нужно "отобрать" массив у ptr и передать его, без каких-либо изменений, объекту ptr2 |
|
21.09.2009, 10:30 | #5 |
Новичок
Джуниор
Регистрация: 20.09.2009
Сообщений: 4
|
Спасибо за совет к конструктору копирования - видимо тогда я уже почти ничего не соображал к вечеру
Насчёт _msize - если вы мне сможете подсказать, как получить размер памяти по указателю ещё каким-либо способом, я буду только рад |
21.09.2009, 13:20 | #6 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Цитата:
Но вообще я не вижу смысла в этом. Умный указатель должен быть максимально похож на обычный указатель. Проверка границ массива тут в принципе не нужна. Хотя, как говорится, хозяин - барин Посмотри эту статью. Там вкратце расписаны особенности разных умных указателей, может будет полезно. В принципе, можно "слизать" unique_ptr для данной задачи. Ну, разве что, оператор [] добавить и функтор удаления жёстко задать, а не передавать параметром |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходима помощь | mrwhat | Фриланс | 7 | 19.05.2009 09:03 |
Необходима помощь с кроссбраузерностью | sdevil | HTML и CSS | 1 | 24.10.2007 01:55 |
Необходима помощь | nimf | Свободное общение | 0 | 29.08.2007 10:43 |
необходима помощь специалиста | Ирина | Свободное общение | 0 | 09.11.2006 15:52 |