как отловить вызов ф-ции
От: piAnd Россия  
Дата: 02.10.06 18:27
Оценка:
Привет всем! Подскажите хотяб идею для решения вот такой проблемы.

//определение
class C1{
public:
   void foo(){/*...*/}
};
//и
template <typename T>
class C2{
public:
   C2(T &Src):Ref(Src){}//в Ref храним ссылку на заданный объект
   void foo(){/*...*/}
   T &Ref;
};

//в главном cpp:
C1 c1;
C2<C1> c2_1(с1);
C2<C1> c2_2(с1);


проблема в том, чтобы при каждом вызове c2_x.foo() мы как-то должны знать, что уже вызывалась c1.foo().
Можно добавить в C1 и C2 флаг, который бы менялся в c1.foo() и сигнализировал об ее запуске, а в c2_x.foo() шло бы сравнение старого флага, хранящегося в c2_x и флага из Ref. Но что если мы запустим c1.foo() столько раз, чтобы флаг вернулся в исходное состояние, и c2_x.foo() обломится (если использовать в качестве флага перечислимый тип). Кто што может предложить? Спась.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.