静的に解決する場合もマクロよりテンプレート使った方がいいと思うがそれはともかく。

classAとclassBの間に継承関係はある?
あるのならもちろん仮想関数で解決できる。
今ない場合も共通のインターフェイスを継承するようにすれば解決できる。
これが一番言語的なサポートを受けられて簡単かな。

フリー関数でラップしてそのポインタを利用する。
より高度な枠組みとして簡単な deligate 風の仕組みを作る方法もあるが。