![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Ошибка не в этом, а в вызове метода setnext передавая в качестве this NULL |
|||
|
||||
| H4nter |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 16.12.2007 Репутация: нет Всего: нет |
Но если T у нас указатель на объект, то такое присваивание допустимо (такой ошибки не возникает)
|
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Ошибка не в присваивании, а 2мя строками ниже:
Смотрим в setnext:
|
||||||
|
|||||||
| H4nter |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 16.12.2007 Репутация: нет Всего: нет |
но если так лучше не делать, то как по другому?
Ведь если не присваивать NULL то потом не определить пустоту списка... |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Не надо делать header->setnext(header);, а делать header = NULL; надо. |
|||
|
||||
| H4nter |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 16.12.2007 Репутация: нет Всего: нет |
Ну а как же мне тогда сделать его кольцевым?
Ну допустим я убрал header->setnext(header); Самое интересное, что ошибка осталась! начинаю коментировать строчку за строчкой... и что же я вижу? при коментировании строки header = NULL; ошибка пропадает... Получается ему не нравится именно строчка header = NULL;, и как же обойти это? Это сообщение отредактировал(а) H4nter - 15.5.2008, 14:33 |
|||
|
||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
У тебя еще нет списка, нет головного элемента, сплошные NULL поинтеры. Что ты собрался закольцовывать?
|
||||||||
|
|||||||||
| H4nter |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 16.12.2007 Репутация: нет Всего: нет |
ну а если не вызывать метод, а объявить _next в публик части класса, и вызывать так: header->_next=header, то все равно проблема остается... |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Блин, ну сколько можно
|
||||||
|
|||||||
| H4nter |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 16.12.2007 Репутация: нет Всего: нет |
Теперь ясно, сори конечно, но просто ты пишешь сначала про вызов метода через NULL не нравится, а потом что мол присваивании NULL указателя по нему нельзя. Вот я и подумал сначала, что это именно в вызове метода дело(вызов метода для NULL указателя), и что можно попробовать без метода обойтись... Это сообщение отредактировал(а) H4nter - 17.5.2008, 17:35 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Исправить это можно удалив вызов setnext в этих местах. Присваивание header->_next=header так же делать нельзя. Удалять же инициализацию header=NULL; нельзя - это не исправит предыдущей ошибки и добавит новую. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |