| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Указатель вместо ссылки в private-секции. |
| Автор: kemiisto 7.3.2010, 00:49 | ||||||
| Вообщем вот что. Все мы знаем, что в public интерфейсе (С++ класса) лучше использовать ссылки, а не указатели. Ссылки - везде, где это возможно, указатели - только в случае необходимости. Но последнее время у меня возникает стойкое желание использовать ссылки не только "снаружи", но и "внутри". Пример:
В итоге в методе класса ("внутри") вместо
пишем
Как-то красивше. Единообразный стиль... Кто что думает? |
| Автор: andrew_121 7.3.2010, 00:53 | ||
т.е. у вас это реализовано так:
? up |
| Автор: andrew_121 7.3.2010, 01:14 | ||||
|
| Автор: kemiisto 7.3.2010, 02:02 | ||||
Угу.
Да, да. Именно это я и имел ввиду.
Собственно, в этом и был вопрос. Просто хотел удостовериться. andrew_121, так тоже можно. Но невсегда. Иногда ведь нужно иметь возможность заNULLить. |
| Автор: mes 7.3.2010, 02:11 |
или просто поменять объект. |
| Автор: Alek86 7.3.2010, 09:56 |
| andrew_121, что в твоем коде получится? ссылка на временный обьект? |
| Автор: andrew_121 7.3.2010, 16:09 | ||||||
| Alek86, да, все верно. Добавлено через 4 минуты и 36 секунд вопрос. такой код:
компилятор ругается:
но если ссылка константная:
то все ок. почему так? |
| Автор: Alek86 7.3.2010, 16:30 | ||
| в стардарте явно прописано, что в случае, когда временный обьект возвращается в константную ссылку, его жизнь продолжается до того момента, пока не уничтожится эта самая ссылка но у меня ощущение, что это правило работает только для ссылок-переменных в функциях, и не уверен что твой временный QDialog должен жить до вызова деструктора MainWindow. Возможно то, что не пишется ошибка - бага компилятора а зачем так извращаться? напиши просто:
|
| Автор: andrew_121 7.3.2010, 16:48 | ||
но работает. хз. в наличии gcc-4.5.0. не самый бажный компилятор. это вопрос к kemiisto) |
| Автор: mes 7.3.2010, 17:12 | ||
|