русский
Germany.ruForen → Архив Досок→ Programmierung

[C++] Иерархия функторов

20.11.06 23:43
Re: [C++] Иерархия функторов
 
voxel3d Убить всех транслитчиков!
voxel3d
in Antwort Simple 20.11.06 22:48, Zuletzt geändert 20.11.06 23:50 (voxel3d)
Во-первых, не вызовется, потому, что не скомпилируется. Если for_each сделать вида:
  for_each<vector<int>::iterator, BaseFunctor&>

то передать туда как написали выше:

  DerivedFunctor theFunctor;

будет нельзя. Если попытаться сделать нечто типа этого:

  BaseFunctor bf1;  
DerivedFunctor df;
BaseFunctor& bf2 = df;

то попытка вызвать:

  for_each<vector<int>::iterator, BaseFunctor&>(vec.begin(), vec.end(), bf2);

будет тоже неудачной. Во-вторых, если бы это работало, тебе, вроде, совсем другое надо - для каждого элемeнта коллекции вызвать нужную функцию? Если да, то Мурр сказал в начале ответ - в коллекцию загоняем ссылки на базовый виртуальный класс, а функтор всего лишь дёргает виртуальную функцию из переданного ему элемента коллекции.

Dropbox - средство синхронизации и бэкапа файлов.
 

Sprung zu