class Context; class Strategy { void algoritm1(Context* pContext); }
template<class T> class Context { T* m_pStrategy; }
class Strategy { template<T> void algoritm1(Context<T>* pContext); }