| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Перегрузка операторов |
| Автор: maths_fan 28.2.2004, 15:42 |
| Достаточно распространённый вопрос, но в F.A.Q. я такого не нашла, так что теперь смело задаю Каков смысл перегрузки оператора ->? Может кто-нибудь может привести конктретный пример, иллюстрирующий нужность этого действия. Ещё инетесует перегрузка другого оператора, а именно new(). Оказывается, что этот оператор сперва вызывает так называемую "allocation function" (выделяет память), а потом конструктор. Так вот "allocation function" можно вызвать вручную, написав operator new, пример class A { public: A() { } } *a; a = operator new(sizeof(A)); Но, когда происходит перегрузка оператора new(), то передаётся постоянный параметр size_t size и другие параметры, однако можно без них. Вопрос такой: можно ли перегрузить "allocation function", указав только один параметр (size_t size)? |
| Автор: srd 28.2.2004, 20:46 |
| Перегрузка операторов operator* и operator-> используется при написании "умных указателей". Очень важный пример. Второй вопрос не понял. Перегружается ведь сам оператор new. А как вы там память будете распределять - это вам решать. |