Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
|
||||||
#1 | ||||||
Класс массив - C++14.09.2011, 22:37. Просмотров 1196. Ответов 11
Метки нет Все метки)
(
В общем задание написать шаблон класса массив.
Сразу писал этот класс как не шаблонный, проблем не было, всё отлично работало. А вот с шаблонами не катит почему-то. Просьба помочь разобраться.
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
14.09.2011, 22:37 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Класс массив (C++):
11
Класс домов и класс улиц для учета поступлений квартплаты. Массив - C++ Создать Класс Coins (монеты). Класс сохраняет массив из 3 монет ... - C++ Шаблонный класс и класс одномерный массив - C++ Класс "Динамический массив точек", в котором лежит класс Point - C++ Описать класс Массив, найти массив, состоящий из элементов первого и второго массива - C++ опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) - C++ |
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 724
|
||||||
14.09.2011, 22:54 | #2 | |||||
Замените 16, 17 строки на
1
|
silent_1991
![]() |
||||||
14.09.2011, 22:56 | #3 | |||||
1
|
Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
|
||||||
14.09.2011, 23:05 [ТС] | #4 | |||||
ITZver, не проходит, теперь выдаёт ошибки, что невозможно обратиться к private члену.
![]() Добавлено через 4 минуты silent_1991, и так не работает, но теперь ругается только на оператор >>. Upd: нет, работает, спасибо. Не могли бы Вы объяснить почему нужно делать именно так? В случае с friend istream &operator>>< X >(istream &,Array<X> &); этой строкой я понял почему, а вот зачем делать сразу вот это?
0
|
silent_1991
![]() |
|
14.09.2011, 23:08 | #5 |
Sick2, не знаю, что у вас там не работает. в 2010 студии всё прекрасно компилируется и работает. Вы точно скопировали весь код? Там везде у вас в операторе >> const для ссылки на объект класса был расставлен, я его везде убрал.
0
|
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
|
|||||||||||
14.09.2011, 23:10 | #6 | ||||||||||
Это не проверка на ошибку... В таких случаях бросают исключение.
1
|
Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
|
|
15.09.2011, 00:22 [ТС] | #7 |
Cпасибо, но я ещё это не прошёл так сказать) Решил оставить на потом.
Добавлено через 1 час 7 минут Ба...в общем при прочтении задания полностью,выяснил что там нужно ещё определить пользовательский тип. У меня этот тип стек. Я пока не очень представляю, что это будет. Массив стеков... У меня вопрос: нужно ли чего менять в этом коде, для реализации такого массива?
0
|
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
|
||||||
15.09.2011, 01:20 | #8 | |||||
Ничего менять не нужно, разумеется кроме явных ошибок. Например, почему ты выделяешь память для int
Добавлено через 4 минуты А вообще, ошибок в коде немало. В частности не реализованы конструктор копий и оператор присваивания.
1
|
Jupiter
Каратель
![]() |
||||||
15.09.2011, 01:30 | #9 | |||||
вектор без аллокатора
vector.hpp
долго не отлаживал, возможно есть и ошибки
2
|
Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
|
|
15.09.2011, 01:39 [ТС] | #10 |
Первую ошибку я исправил, когда создавал шаблон типа double)
Ну...я это не реализовывал потому как в задании это не указано ![]() Не могли бы Вы назвать ещё ошибки? Мне очень интересно) Добавлено через 2 минуты Jupiter, благодарю за код, но в этой работе не разрешается использовать сторонние библиотеки)
0
|
Jupiter
Каратель
![]() |
|
15.09.2011, 01:41 | #11 |
для начала присмотрись где и что используется, и напиши собственные альтернативы, важен сам принцип построения такого класса, а не его реализация
1
|
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
|
|||||||||||||||||||||
15.09.2011, 23:09 | #12 | ||||||||||||||||||||
И тем не менее, в 99-ой строке ты это использовал ) Либо реализуй их, либо спрячь прототипы этих функций в секцию private:
1) для индексации и размера массива лучше использовать std::size_t вместо int; 2) конструктор по умолчнию здесь лишний, достаточно было сделать для конструктора с параметром параметр по умолчнию
1
|
15.09.2011, 23:09 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
15.09.2011, 23:09 |
Привет! Вот еще темы с ответами:
12
Написать класс Матрица. Массив объектов класса Массив - C++ Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
Создать базовый класс "Массив" и класс-наследник "Матрица" - C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |