| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > О перегрузке инкремента |
| Автор: Cardholder 13.3.2004, 12:45 |
| В классе описана ф-ция перегрузки ++ pair& operator ++(pair& P) { cout<<"Prefix ++"<<endl; P.N*=10; return P; } Что означает апрерсанд(знак &) после слова pair в определении ф-ции в 1м и 2м случае? |
| Автор: mr.DUDA 13.3.2004, 12:53 | ||
значит, что аргумент передаётся в функцию по ссылке - это чтобы иметь возможность реально что-то сделать с объектом (не создавая копию конструктором копирования, что имело бы место, если убрать "&"). |
| Автор: Coocky 13.3.2004, 15:13 |
| Ух ты, а классно светит |
| Автор: mr.DUDA 13.3.2004, 17:24 | ||
Совсем забыл: левый амперсанд (в типе возвращаемого значения) указывает на то, что результат функции-оператора имеет ссылочный тип. В теле функции стоит "return P", и всё это значит, что результатом будет значение, адресуемое ссылкой "P". Ссылка в результате нужна, чтобы после выполнения инкремента, над тем же объектом можно было выполнить другие операции, например декремент:
З.Ы. |