同じ名前で、複数のメンバ関数を切り替えて使いたい場合はメンバ関数ポインタを使うのが一番スマート?
これよりいいやり方は無いかな?

#include <iostream>

class CHoge
{
typedef void (CHoge::*MemFunc_t)();
MemFunc_t mMemFunc;
public:
void memFuncA() { std::cout << "CHoge::MemFuncA" << std::endl; }
void memFuncB() { std::cout << "CHoge::MemFuncB" << std::endl; }
void setMemFunc(MemFunc_t memFunc) { mMemFunc = memFunc; }
void memFunc() { (this->*mMemFunc)(); }
};

int main(void)
{
CHoge hoge;
hoge.setMemFunc(&CHoge::memFuncA);
hoge.memFunc();
hoge.setMemFunc(&CHoge::memFuncB);
hoge.memFunc();
return 0;
}