たとえばの話なんだけどRPGとかでさ、味方も敵もくらすで管理してるとき、
味方が敵に攻撃したときのダメージをどうやって計算するのが一番スマートなんだろう?
味方の攻撃力も敵の防御力もマナーに乗っ取ってPrivateにする前提。

1.ダメージ計算用の独立した関数を作る
引数には各くらすから取得した値を入れる
int GetDamage( Charactor->GetAttack() , Enemy->GetDef() );

2.くらすにダメージ計算用関数を用意して、攻撃する側の攻撃力だけ渡してダメージを受ける側に計算させる
int Enemy->GetDamage( Charactor->GetAttack() );

3.1も2も攻撃力以外の要因、属性やクリティカル率、が入ると引数が莫大な数になるから、
味方のくらすのアドレスと敵くらすのアドレスを渡してしまう
int GetDamage( Charactor , Enemy );

どれも微妙。