クラス(オブジェクト)の中にクラスを含んでるような階層構造の深いところ同士の処理はどうするんですか?
グローバル変数として宣言してゴリゴリアクセスするのならいくらでも作れますが、
もうちょっとスマートなやり方はないのかなと。

class Game{
   private:
      Army *human; // 人類軍のクラス配列
      Army *alien; // 宇宙軍のクラス配列
   /* 以下省略 */
};

class Army{
   private:
      int army_id;
      char army_name[32];
      Soldier *soldier; // 兵士の配列
   /* 以下省略 */
};

class Soldier{
   private:
      int soldier_id;
      char soldier_name[32];
      int hp; // ヒットポイント
   /* 以下省略 */
};

例えばこの場合の兵士同士の当たり判定とかです。
今まで作ったゲームはGameの中に直接Soldierがあるような感じのものばかりだったので、
そのままGameでSoldierにアクセスして処理していたのですが、
こうやって階層が深くなった場合の、深い階層にあるもの同士の処理が面倒です。