とりあえず、自分の考える変更点。

// 攻撃力だけ渡すのではなく、攻撃者自体を渡す。
int hito::damege(const hito &attacker){

// bがaに攻撃とコメントを書くらいなら、コードをそのようにする。
int hito::attack(hito &target){

// ダメージの計算を関数にして、後から編集しやすいようにする。
int calc_damage(int kou) { return kou / 2; }

// ダメージの計算を複雑にしても使えるように、攻撃側と守備側を引数とする。
int calc_damage(const hito &attaker, const hito &defender)
{ return std::max(0, attaker.kougeki - defender.bougyo); } // たとえば(攻撃力)-(防御力)、もし負ならゼロ。