アンパンマンをC++的に考える

2009/9/8-1

はてな村界隈でアンパンマンとバイキンマンに関して盛り上がっているようです。

はてブ:バイキンマンは何故ジャムおじさんとバタ子を攻撃しないか。 - 蹴ったり叩いたり - 楽天ブログ(Blog)

個人的に昔からアンパンマンの歌詞で納得がいかない部分があったのですが、先ほどTwitterで呟いていたら自分の中で納得ができる解が作れたので、書いてみようと思います。

アンパンマンの歌詞には以下のような部分があります。


そうだ恐れないで
みんなのために
愛と勇気だけが友達さ

ああ アンパンマン
やさしい君は
いけ! みんなの夢まもるため 

まず、最初に気になっているのが「愛と勇気だけが友達さ」という部分です。 この部分をpseudo codeにすると以下のようになる気がします。



if (愛 || 勇気) {友達}
else {not 友達}


「愛と勇気 "が" 友達」であれば、elseの部分にさらに「友達」という状態が入る可能性もありますが、「愛と勇気 "だけ" が友達」とあるので、else部分は「not友達」になります。

ただ、これは納得がいきません。 バタコさんは友達ではないのでしょうか? ジャムおじさんは?チーズは?コチョウランさんは?

アンパンマンの内部構造を推測したpseudo codeが間違っているとしか思えません。

そこでもう一度考えてみました。 「友達」とは何でしょうか? どうすれば「友達」stateへと移行できるのでしょうか?

答えは非常に単純でした。 「友達」とはすなわちfriendです。 アンパンマンは人々の「愛」と「勇気」に対してフレンドの関係があるということです。



// 前方宣言
class アンパンマン;

class 愛
{
  friend class アンパンマン;

  private bool havePartner;
  private long partnerID;

  ...その他メソッドなど 
};

class 勇気
{
  friend class アンパンマン;

  private int level;
  ...その他メソッドなど 
};

class アンパンマン
{
  public long GetPartnerID(愛& love)
  {
    return love.partnerID;
  }

  public void SetPartnerID(愛& love, long newID)
  {
    love.partnerID = newID;
  }
};


以上からわかったことですが、アンパンマンはやはり博愛主義者でした。 全ての愛を司っています。 そのため、全ての愛の中身に対して自由にアクセスが可能です。 勇気に関しても公開であろうが非公開であろうが自由にアクセス可能です。

全ての人が愛と勇気を継承すると考えると、アンパンマンは全ての人の愛と勇気に無制限のアクセスが可能なのかも知れません。 アンパンマンは世界の単一点障害(Single Point of Failure)なのです。

でも、アンパンマンは「やさしい」ので、権限があったとしても皆の「夢」には手を出さずに「守る」そうです。 ということは、「愛」に関しては外から自由にメソッドを使いまくってるってことですか??? きゃ!

なお、余談ではありますが、バイキンマンはアンパンマンを倒すためにバイキン星からやってきており、街の皆がバイキンマンの悪さに遭遇するのは、アンパンマンとバイキンマンの人生をかけた戦いの巻き添えという考え方もあるようです。

以上、お見苦しい文章、失礼しました。。。

プロフェッショナルIPv6解説動画シリーズ再生リスト

動画で学ぶ「プロフェッショナルIPv6」を作っています。 もしよろしければご覧ください。お楽しみいただければ幸いです!