![]() |
?* Теория *? Очередные хитрые вопросы по C++
Дабы сэкономить код я написал такую хитрую вещь:
Код:
CFormList { |
У меня ругается. gcc 3.4.2. Зато
Код:
for_each(flist.begin(), flist.end(), ptr_fun(operator delete)); А ещё бы я забил на std::auto_ptr и использовал более умный указатель и не мучался. Что-нибудь из boost (shared_ptr?) по идее можно выдрать, или свой на коленке сваять. |
А мне std::auto_ptr нравится. В примере, правда, он только для того, чтобы показать передачу владения классом. С поправкой, пожалую согласен.
|
gcc, c++ 3.3.2; компилится, но не работает. Если вас не затруднит, попробуйте этот код:
Код:
#include <iostream> Код:
[andrey@localhost bin]$ test-1 единственный статический оператор, определённый для всех классов автоматически, причём класс идентифицируется по аргументу-указателю. Непонятно, что означает фраза ptr_fun(operator delete), т.е. &(operator delete). Для чьёго оператора берётся адрес? List::operator delete или A::operator delete? Чей вызывается деструктор? Непонятно, почему это откомпилировалось... |
Время: 02:32. |
Время: 02:32.
© OSzone.net 2001-