Привет всем! Подскажите хотяб идею для решения вот такой проблемы.
//определение
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() обломится (если использовать в качестве флага перечислимый тип). Кто што может предложить? Спась.