#ifndef _LOAD_PARAM_H #define _LOAD_PARAM_H // abstract base class class baseLoadParam { public: // virtual void Call(const char* string)=0; // call using function }; // derived template class template class LoadParam : public baseLoadParam { private: T* pt2Object; // pointer to object public: LoadParam(const char* loadString, T* pt2Object, void(T::*function)(const char*)) { this->pt2Object = pt2Object; (*pt2Object.*function)(loadString); }; LoadParam(const char* loadString, T* pt2Object, void(T::*function)(float)) { this->pt2Object = pt2Object; (*pt2Object.*function)(atoi(loadString)); }; }; #endif /* _LOAD_PARAM_H */