Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Перегрузка операторов


Автор: maths_fan 28.2.2004, 15:42
Достаточно распространённый вопрос, но в F.A.Q. я такого не нашла, так что теперь смело задаю smile.gif
Каков смысл перегрузки оператора ->? Может кто-нибудь может привести конктретный пример, иллюстрирующий нужность этого действия.
Ещё инетесует перегрузка другого оператора, а именно 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. А как вы там память будете распределять - это вам решать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)