Как насчет использования шаблонов C ++?
template<typename T>
class Basic{
public:
void f(T);
};
template<typename T>
Basic<T>::f(T t){
//Do something generic here
}
Вы можете использовать специализацию шаблона, если вашей функции f нужно сделать что-то еще, когда ее параметр имеет определенный тип. Я буду использовать строку в этом примере.
template<>
class Basic<string>{
public:
void f(string);
};
template<>
Basic<string>::f(string t){
//Do your special thing with a string
}
Надеюсь, это поможет!