|
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
|||||||||||
Константные функции-члены класса, возвращающие ссылку на константу08.08.2011, 21:09. Показов 12447. Ответов 64
Метки нет (Все метки)
Упражняюсь по книге Липпмана, выполняю задания по теме классы.
Необходимо реализовать класс person, который способен хранить имя и адрес человека, а также создать функции, возвращающие при обращении имя и адрес. Вопрос, который ставит автор книги: "Должны ли эти функции быть константными? Объясните почему." Вот тут я начал путаться. Вот моя реализация: файл person.h
1) Константными эти функции должны быть, так как они не меняют значений переменных-членов объекта. 2) Возвращать они должны лишь константную ссылку на строку, а не просто тип string, дабы избежать ненужного копирования. Прав ли я? Если нет, то объясните почему.
0
|
|||||||||||
| 08.08.2011, 21:09 | |
|
Ответы с готовыми решениями:
64
Константные функции-члены ? класс «Строка» (данные-члены класса – строчка, функции-члены класса – операции) |
|
106 / 106 / 11
Регистрация: 17.10.2010
Сообщений: 283
|
|
| 08.08.2011, 22:18 | |
|
Да, Вы правы
2
|
|
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
||||||||
| 08.08.2011, 22:42 | ||||||||
1
|
||||||||
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
| 08.08.2011, 22:44 | |
|
0
|
|
|
Каратель
|
||
| 08.08.2011, 22:49 | ||
|
0
|
||
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
| 08.08.2011, 22:52 | |
|
0
|
|
|
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
|
| 08.08.2011, 23:03 [ТС] | |
|
2 rangerx - твой пример проверил, действительно, так и есть. Спасибо, за информацию.
А про второй пункт мнения, гляжу, разные.
0
|
|
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
| 08.08.2011, 23:11 | |
|
1
|
|
|
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
|
| 08.08.2011, 23:11 [ТС] | |
|
0
|
|
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
| 08.08.2011, 23:23 | |
|
Maxwe11, если ссылка утерена, об этом можно у Мэйерса почитать (28 правило, 55сов.)
0
|
|
|
Каратель
|
||||||
| 08.08.2011, 23:37 | ||||||
Сообщение было отмечено как решение
Решение
да, но у Майерса пример с ссылкой на локальный объект
а такой код например отрабатывает
0
|
||||||
|
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
||||||
| 08.08.2011, 23:40 [ТС] | ||||||
|
2 PointsEqual
1) Т.е., насколько я понимаю - в методах моего класса нужно вернуть объект типа string, а не ссылку на константу? 2) Желаю разобраться, что же в этом примере "плохого". Я его понимаю так - sss присваивается значение, возвращаемое методом get_name(), а этот метод вызвал временный объект типа person. Т.е. объект исчез, а ссылка так и осталась висеть в памяти? Если бы метод get_name() возвращал объект типа string, то этот возвращаемый объект исчезнет вместе с временным объектом типа person?
0
|
||||||
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|||
| 08.08.2011, 23:48 | |||
|
Добавлено через 4 минуты
1
|
|||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||
| 08.08.2011, 23:51 | ||
|
string& operator= ( const string& str ); ссылка не живет дольше времени
2
|
||
|
Заблокирован
|
|||
| 09.08.2011, 01:25 | |||
|
Так что вам еще раз придется перечитать Майерса. .Добавлено через 4 минуты
1
|
|||
|
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
|
| 09.08.2011, 02:50 [ТС] | |
|
2 Сыроежка - спасибо за комментарий.
Желаю разобраться в этом вопросе досконально, потому буду ждать еще комментарии форумчан.
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|||||||||||
| 09.08.2011, 13:43 | |||||||||||
0
|
|||||||||||
|
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
|
| 09.08.2011, 16:10 [ТС] | |
|
2 Deviaphan - а почему это будет лучше? Или правильней? По-моему это лишь другой вариант, ничем не лучше первого.
Хочу обоснование.
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||
| 09.08.2011, 17:38 | ||
|
2
|
||
| 09.08.2011, 17:38 | |
|
Помогаю со студенческими работами здесь
20
Почему нехорошо себя ведёт конструктор класса (не компилится ничё), если ему параметром ссылку на константу? ООП - Указатели на функции члены класса Массив указателей на функции-члены класса
Использование указателей на функции-члены внутри самого класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|