ありきたりなことなんだけど、覚えておきたいことのため自分へのメモ。
関数、クラスに汎用性を持たせるには、
1、呼び出し側で、インターフェースを生成(newやmallocする)
2.呼び出し側で値をセットする
3.呼び出し側でセットされた値を獲得し、なんかする
4、呼び出し側で、インターフェースを消滅(deleteやfreeする)
そうすると、呼び出された側では、呼び出し側を知る必要がないので、汎用化できる。
上記の条件を守らないと、誰から呼ばれたか、知らないといけないので(呼ばれた場合の処理が異なり)汎用化できなくなる危険性が高くなる。