![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Foxxx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.8.2007 Репутация: нет Всего: нет |
У меня есть класс Динамический Массив (Вектор)!
Надо реализовать перегрузку оператора + чтобы возможно было такое C = A + B; Я пробовал, но у меня какието ошибки (невозможно прочесть память)! Помогите пожалуйста реализовать это! Вот исходник:
|
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 26 Всего: 122 |
|
|||
|
||||
| anatox91 |
|
||||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: 3 Всего: 13 |
1)давай сюда дословно ошибки компилятора
2)бегло просмотрев заметил пока что вот эту ошибку:
надо:
-------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
||||
|
|||||
| Foxxx |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.8.2007 Репутация: нет Всего: нет |
Блин! Забыл написать язык=) С++
Вот текст ошибки: Invalid Allocation Size: 4294967295 bytes Добавлено через 2 минуты и 58 секунд
В описании класса помоему не обязательно писать имя параметра, т.е. CVector(int) - это должно быть верно! |
||||||
|
|||||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 8 Всего: 37 |
Foxxx, советую имя параметра в конструкторе сменить |
|||
|
||||
| Foxxx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.8.2007 Репутация: нет Всего: нет |
Sartorius, в каком именно конструкторе?
НЕ понимаю тебя, объясни подробнее ПЛЗ! Это сообщение отредактировал(а) Foxxx - 12.5.2008, 17:12 |
|||
|
||||
| Foxxx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.8.2007 Репутация: нет Всего: нет |
|
|||
|
||||
| creatorcode |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.6.2006 Где: Ленинград Репутация: 3 Всего: 4 |
1. Раскомментируй код перегруженного присваивания.
2. Измени конструктор копирования
3. Измени код перегруженного сложения
Это сообщение отредактировал(а) creatorcode - 12.5.2008, 17:53 |
||||
|
|||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 4 Всего: 36 |
Foxxx,
в конструкторе копии в этой строчке V = new int[Size]; весело выделяется память случайного размера в пределах -2gb .. 2Gb мусор в переменной Size заменяется на правильное значение только в конце выполнения функции. |
|||
|
||||
| Foxxx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.8.2007 Репутация: нет Всего: нет |
creatorcode, спасибо тебе огромное!
Работает!!!! Ток объясни плз, в чем именно главная проблема была?=) |
|||
|
||||
| creatorcode |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.6.2006 Где: Ленинград Репутация: 3 Всего: 4 |
У тебя было 2 основных проблемы: первая заключается в том, что дефолтное присваивание работает только для примитивных типов, для любых динамических объектов необходимо написать свою версию оператора присваивания (у тебя она была написана, только почему-то закомментирована); вторую указал Rififi. Ну и третья проблема - логическая: в твоем коде в операторе сложения собственно сложения не происходит, а происходит присваивание одного вектора другому. |
|||
|
||||
| Foxxx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.8.2007 Репутация: нет Всего: нет |
Ясно! Спасибо огромное тебе еще раз!!!
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |