1 | |
Указатели или ссылки (в качестве аргументов функции) ?23.05.2013, 10:23. Показов 4133. Ответов 55
Метки нет (Все метки)
В каких случая надо использовать ссылки и в каких указатели в качестве аргументов функции?
В общем поняла, что и те и другие полезны для ссылания на крупные обьекты типа классов.
0
|
23.05.2013, 10:23 | |
Ответы с готовыми решениями:
55
Нюансы синтаксиса и семантики: ссылки, указатели и массивы в качестве аргументов функций Указатели на массивы в качестве аргументов Константные указатели в качестве аргументов функций Указатели и динамические массивы. Использование указателей в качестве аргументов функций |
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
24.05.2013, 10:08 | 21 |
0
|
Каратель
|
||||||
24.05.2013, 10:14 | 22 | |||||
только модифицировать ничего не надо
2
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
24.05.2013, 10:14 | 24 |
Ссылка-параметр - указатель на ту же память, остальные ссылки могут быть реализованы тремя способами: или как синтаксическая надстройка над указателем, или на этапе компиляции как связанная строчка в таблице переменных, или опять же на этапе компиляции как запись в дополнительном столбце имён переменных. Она в любом случае сошлётся на ту же память, но обращение по ссылке, не являющейся параметром, может быть оттранслировано и во фрагмент кода, полностью идентичный обращению к той же памяти по имени самой переменной, а не ссылки на неё, стандарт иного не гарантирует.
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
24.05.2013, 10:14 | 25 |
oxotnik, Чего? Оператор + НЕ должен изменять сам класс. Оператор += должен.
2
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
24.05.2013, 10:17 | 26 |
ForEveR, а Вам не приходило в голову задуматься о причинах ошибок и глюков даже в ОО-проектах? В частности о причинах знаменитой утечки памяти?
1
|
oxotnik
|
24.05.2013, 10:20
#27
|
Не по теме: звиняйте, бес попутал
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
24.05.2013, 10:25 | 28 |
taras atavin, Это вы о чем глаголите? О том, что оператор + должен изменять объект?
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
24.05.2013, 10:30 | 29 |
О том, что при всех Ваших стараниях всё равно найдутся деятели, запутывающие исходник путём перегрузок оператора +, делающих то, что должен делать +=, а то и *=. Именно они и пишут глючно.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
24.05.2013, 10:49 | 31 |
Как так? Под именем оператора сложения что ли? Так писать нельзя, это источник глюков. Или меняет объект, от которого вызвал? Ну так на то это и присваивание. Сложение то здесь при чём?
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
24.05.2013, 12:05 | 33 |
Ну так присваивание, как простое, так и составное, как раз и должно менять сам объект, в отличие от сложения. Охотника же явно глюк попутал.
0
|
programina
|
24.05.2013, 12:14
[ТС]
#34
|
0
|
Неэпический
|
||||||
24.05.2013, 13:32 | 35 | |||||
Доставайте объекты из пула, чтобы избежать их создания, но вопрос стоит ли оно этого в данном случае.
operator+ не должен изменять объект, а должен работать именно так, как ожидает клиент.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
24.05.2013, 13:35 | 36 |
Как он должен работать и как всё рано напишет какое нибудь чудило - далеко не одно и тоже, иначе глюков бы не было.
0
|
24.05.2013, 14:46 [ТС] | 40 |
0
|
24.05.2013, 14:46 | |
24.05.2013, 14:46 | |
Помогаю со студенческими работами здесь
40
С++ Тема «Указатели и динамические массивы. Использование указателей в качестве аргументов функций» Структура в качестве аргументов функции Функции с указателями в качестве аргументов Идентификаторы списка в качестве аргументов функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |