| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > объясните пару строк |
| Автор: 6axyc 29.12.2011, 16:53 | ||||||
вобщем я только начал познавать азы в с++. ну и скачал пару роликов. дык вот не могу понять что именно делают эти 2 поля
и
если кто сможет помочь парой слов, или дать ссылку, буду рад. просто убирая эти поля, программа все еще функционирует. к стате это простая прога которая считывает с файла имя и телефон, и делает поиск имени в уже загруженном массиве. |
| Автор: volatile 30.12.2011, 00:07 | ||
bsa, объясните почему не верно? Видимо я чего-то в корне не понимаю... Имхо, в данном случае оператор присваивания сделан очень даже по джедайски (или как там это называется?), в общем нормально сделан |
| Автор: bsa 30.12.2011, 12:09 |
| оператор присваивания должен вернуть неконстантную ссылку на свой объект. Иначе не будут работать конструкции вида: (x += 10)++; допустимость и/или наглядность подобных конструкций не обсуждаем Для учебного материала, имхо, подобная реализация конструктора действительно выглядит неверно. В практике понимающего программиста теоретически может использоваться (но зачем?). |
| Автор: 6axyc 30.12.2011, 13:40 |
| bsa спасибо, первую книгу я уже скачал начал читать. |
| Автор: volatile 4.1.2012, 01:34 |
Ну вообще-то такая конструкция работать будет. (верней неизвестно, это другой оператор, с другим аргуметном) Не будет работать, что-то типа : (x = y) ++; и жалко что Хотя, если подходить строго, вы абсолютно правы. Раз стандартные типы с++ не запрещают выполнять такие кренделя, то и пользовательские типы по-возможности, должны вести себя так-же, согласен. |
| Автор: bsa 4.1.2012, 12:49 | ||
вот именно. Исключения есть (boost::spirit), но они единичны и, как водится, подтверждают правило. |