0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 13
|
||||||
1 | ||||||
Ошибка при записи в открытый член класса05.04.2015, 01:35. Показов 1064. Ответов 14
Метки нет (Все метки)
Имеется ниже представленный класс. Создаю его экземпляр и хочу использовать в функции. В этой функции устанавливаю значения для переменных m, xS. Но вместо этого программа выдает ошибку, что записать по этому адресу нельзя ничего. В чем причина?
0
|
05.04.2015, 01:35 | |
Ответы с готовыми решениями:
14
Запрет записи в член класса Ошибка при записи в список класса Запросить у пользователя подтверждение при записи изменений в открытый файл Ошибка при записи в файл данных из обьекта класса |
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
|
|
05.04.2015, 01:39 | 2 |
Вот именно код создания этого экземпляра и нужно было привести в вопросе. А не описание класса.
0
|
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 13
|
||||||
05.04.2015, 01:42 [ТС] | 3 | |||||
0
|
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
|
||||||
05.04.2015, 01:51 | 4 | |||||
А вот это никак не создание экземпляра класса. Это объявление переменной, в которую может быть автор программы запишет ссылку на созданный экземпляр класса.
А создание экземпляра класса в общем случае это код типа
0
|
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 13
|
||||||
05.04.2015, 01:52 [ТС] | 5 | |||||
окей,
0
|
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
|
|
05.04.2015, 02:00 | 6 |
0
|
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 13
|
|
05.04.2015, 02:02 [ТС] | 7 |
нет, это все было прописано
попросил показать, как создаю экземпляр - держи. В Delphi я уже запутался что у него зачем и куда, честно говоря.
0
|
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
|
|
05.04.2015, 02:08 | 8 |
Ну тогда приводи полный код. К сообщению можно прикрепить файл с архивом проекта.
0
|
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 13
|
|
05.04.2015, 02:14 [ТС] | 9 |
..........
0
|
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
|
|
05.04.2015, 02:28 | 10 |
Ну да. Понимаю, что сам попросил привести код - сам и отвечай. Но в том коде разбираться в третьем часу ночи - у меня нет ни сил, ни желания. Завтра может разберусь, если кто-то другой не разберётся раньше меня.
0
|
05.04.2015, 05:57 | 11 | ||||||||||||||||||||
Сообщение было отмечено aaveNs как решение
Решение
ну, я запустил.
что делает код, не знаю, там не подписано, каша в наименованиях и перемешивание ООП с процедурами и глобальными переменными. нажал кнопку, ошибки нет. что не так? не знаю. тогда претензии общего порядка, из-за которых это не взлетит никогда: 1.названия типов начинать с буквы Т чтобы отличать их от переменных 2.не использовать глобальные переменные и функции без КРАЙНЕЙ необходимости (а тут её точно нет) 3. в названиях методов, функций, процедур, принято использовать глаголы, чтобы знать, что эта штука "делает" (примеры - Reset, Read, Open, неправильно - IntersectionY, Parser и т.д.) 4. если в конструкторе мы нахапали памяти под массивы, то нужно написать и деструктор, где аккуратно подтереть за собой:
6. вызов из newC.createArrays процедуры
7. использование глобального массива temp из метода CreateArrays тоже недопустимо итог. все глобальные переменные и процедуры должны стать полями и методами либо TForm1 либо TContour Contour переименовать в TContour, dArray - в TDArray; после этого еще раз сюда...
1
|
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 13
|
|
05.04.2015, 09:50 [ТС] | 12 |
Я понимаю, что код там полнейшая каша, но эту работу мне сдать и забыть. Вот на счет передачи самого объекта функции согласен, это я намудрил, не мог определить как обратится методе к этому объекту (привык, что обращение по this). За зачистку после дня разбора иногда беспричинных ошибок (пару раз начало работать, после простой копии в новый файл) уже как-то и не думал)
Кстати, наименования мне казалось довольно понятны, наоборот. И спасибо за помощь!
0
|
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 13
|
|
05.04.2015, 13:56 [ТС] | 13 |
вот исправленный по рекомендациям код.
работает правильно при LAST <= 10, если ставить до 11 или больше - начинает выдавать ошибку. Возможно, где-то выход за границы массива, но на какой именно строке ошибка не показывает.
0
|
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 13
|
|
05.04.2015, 14:05 [ТС] | 14 |
krapotkin, спасибо еще раз за советы. Организовав все более логично, легко обнаружил, что порождало ошибку (банально опечатался в названии массива, когда задавал длину). Вопрос решен.
0
|
05.04.2015, 14:13 | 15 |
на здоровье
0
|
05.04.2015, 14:13 | |
05.04.2015, 14:13 | |
Помогаю со студенческими работами здесь
15
Функция-член Ошибка класса Ошибка: член класса QLineEdit Ошибка, если QString член класса Ошибка при добавлениии шаблона в открытый файл Excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |