0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
|
||||||
1 | ||||||
Перегрузка оператора +23.08.2013, 20:59. Показов 895. Ответов 18
Метки нет (Все метки)
Доброго времени суток. Есть программа, создающая связный список, который содержит числа по возрастанию
0
|
23.08.2013, 20:59 | |
Ответы с готовыми решениями:
18
Перегрузка оператора Перегрузка оператора + Перегрузка оператора == Перегрузка оператора[] |
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
|
||||||||||||||||
23.08.2013, 21:21 | 2 | |||||||||||||||
Все ссылает на уровень ниже, но в конце это
0
|
7 / 7 / 1
Регистрация: 26.11.2011
Сообщений: 117
|
||||||
23.08.2013, 22:09 | 3 | |||||
что-то такое нельзя?
0
|
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
|
|
23.08.2013, 22:38 [ТС] | 4 |
То же самое
0
|
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
|
|
23.08.2013, 22:58 | 5 |
Ты хочешь сделать связный список?
0
|
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
|
|
23.08.2013, 23:08 [ТС] | 6 |
Да, и я его сделал. Без оператора + (просто Insert(int)) он работает. Но все же хочется понять, что не так
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
23.08.2013, 23:30 | 7 |
operator+ по смыслу не должен модифицировать this.
Если хотите сделать добавление элемента таким образом, то создавайте внутри новый list, добавляйте в него элемент и возвращайте свежесозданный list.
1
|
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
|
|
24.08.2013, 10:15 [ТС] | 8 |
Спасибо. А каких еще операторов касается это правило?
0
|
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
|
||||||
24.08.2013, 11:28 [ТС] | 10 | |||||
0
|
24.08.2013, 11:38 | 11 | |||||
Так должно работать.
0
|
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
|
|
24.08.2013, 11:50 [ТС] | 12 |
на строке list = list + p выводит "Прекращена работа программы..." То есть она компилируется, запускается и до этого работает нормально (если написать просто list.Insert(int))
0
|
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
|
||||||
24.08.2013, 11:57 [ТС] | 14 | |||||
0
|
24.08.2013, 12:18 | 15 | ||||||||||
Это все из-за деструктора. Он удаляет список при выходе из оператора +. Я бы тебе все же посоветовал перегрузить оператор +=, т.к. это будет правильней.
1
|
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
|
|
24.08.2013, 12:34 [ТС] | 16 |
Теперь работает. А если из деструктора LList'a убрать строку, delete myHead, заработает оператор +?
0
|
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
|
|
24.08.2013, 12:38 [ТС] | 18 |
Спасибо
0
|
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
|
|
24.08.2013, 20:26 | 19 |
а разве эта структура вообще правильна? как-то много классов, не достаточно разве просто создать указатель start, next,tail?
0
|
24.08.2013, 20:26 | |
24.08.2013, 20:26 | |
Помогаю со студенческими работами здесь
19
Перегрузка оператора ++ Перегрузка оператора Перегрузка оператора += Перегрузка оператора '=' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |