|
|
||||||||||||||||||||||||||
Перегрузка assing operator. Unhandled exception at 0x103157aa (msvcr100d.dll) in 1exColonSynt_withColonSynt.exe: 0xC0000005: Access violation read02.06.2012, 21:29. Показов 2780. Ответов 7
Метки нет (Все метки)
Значит есть линия (класс Line ) , которая состоит из точек (Class Point). Хочется Одной линии передать значения другой.
Я перегрузил assing operator для Point работает нормально. Для Класса Line выдает какую злую ошибку Unhandled exception at 0x103157aa (msvcr100d.dll) in 1exColonSynt_withColonSynt.exe: 0xC0000005: Access violation read... Пожалуйста, посмотрите в чем косяк. Код ниже.
0
|
||||||||||||||||||||||||||
| 02.06.2012, 21:29 | |
|
Ответы с готовыми решениями:
7
Ошибка: Unhandled exception at 0x772115de in TimeShift.exe: 0xC0000005: Access violation reading location 0x00041000.
|
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 02.06.2012, 21:42 | |
|
на ворнинги компиляции обращаете внимание?
в ваших операторах не во всех ветках исполнения есть return *this. далее: для таких простых классов их не нужно переопределять. дефолтные варианты вполне себе подойдут. классический operator = должен возвращать ссылку на самого себя, а не новый объект. не испльзуйте using namespace std; (и любой другой, не только std) в h файлах.
1
|
|
|
|
||
| 02.06.2012, 21:52 [ТС] | ||
|
извините, но дефолтный вариант мне не подойдет, там искомое задание немного сложнее и связанно именно с перегрузкой этого оператора. "классический operator = должен возвращать ссылку на самого себя, а не новый объект." я абсолютно по той же схеме реализовал assignment оператор для Point класс работает нормально, связи с этим думаю, что не в этом деле извините. В любом случае все что вы сказали я добавил компелятор все равно выдает ту же ошибку.
0
|
||
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 02.06.2012, 21:55 | |
|
проблема не в компиляторе а в во время работы. вы добавили return в конце каждого оператора?
огранизуйте весь код в одном спп файле, чтобы его можно было легко себе скопипастить и проверить. и сюда выкладывайте.
1
|
|
|
|
||
| 02.06.2012, 22:00 [ТС] | ||
|
// test1 = MyLine1; При этом если взять сделать такое присвоение p33 = p2; то все тоже ок работает
0
|
||
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 02.06.2012, 22:08 | |
|
когда все в одном файле - так проще тем, кто пытается вам помочь. копипастить код к себе в таком случае проще и шансы, что вам быстрее помогут да и что помогут вообще увеличиваются. по отдельности закидывать код бывает лениво.
1
|
|
|
|
|||
| 02.06.2012, 22:32 [ТС] | |||
|
Добавлено через 18 минут 1> main.cpp 1> lines.cpp 1> Generating Code... 1>c:\all my\с++\level 3\ha level 3\exercise 5 line class\lines.cpp(82): warning C4715: 'Line::operator=' : not all control paths return a value 1>c:\all my\с++\level 3\ha level 3\exercise 5 line class\pointer.cpp(108): warning C4715: 'Point::operator=' : not all control paths return a value 1> 1exColonSynt_withColonSynt.vcxproj -> C:\all my\с++\HA level 5\Solution\3.4_SimpleInheritance\Debug\1 exColonSynt_withColonSynt.exe ========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ========== lines.cpp(82): Line Line::operator = (const Line& l) { if (this == &l) return * this; discrib = l.discrib; start = l.start; line 81: end = l.end; line 82: } pointer.cpp(108): Point Point::operator = (const Point& p) { if (this == &p) return * this; Xcoord = p.Xcoord; Ycoord = p.Ycoord; line107: line108: } Как я должен переписать эти функции... или должны что они должны возвращать и почему class Point пропускает, а class Line не пропускает ? Спасибо до меня дошло в чем дело должно быть Line Line::operator = (const Line& l) { if (this == &l) { return * this; } discrib = l.discrib; start = l.start; end = l.end; return *this ; } Спасибо !
0
|
|||
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 02.06.2012, 22:35 | |
|
я вам в самом начале написал чтобы вы смотрели на ворнинги сборки и чтобы проставили в каждом операторе в конце return *this;
вы сказали что все сделали. если этого не сделать то корраптится стек и вы получаете неопределенное поведение, т.е. краши в самых разных местах.
0
|
|
| 02.06.2012, 22:35 | |
|
Помогаю со студенческими работами здесь
8
Ошибка вида "Unhandled exception thrown: read access violation" Exception thrown at 0x77D75BCA (ntdll.dll): 0xC0000005: Access violation reading location 0x0000 Unhandled exception at . (KernelBase.dll) in . : 0xC0000005: Unhandled exception .. access violation Ошибка Unhandled Exception, Access Violation Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|