CodeZine(コードジン)

特集ページ一覧

【第5回】委譲

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/12/25 11:00

目次

委譲の実行サンプル

 それでは、拡張した機能を確認してみましょう。

リスト7:委譲の実行サンプル
#include "Member.h"

/* エントリポイント */
int main(int argc, char* argv[])
{
    Member* member = Member_new(1, "snoozer05", "ブロンズ");
    member->changeServiceStautsTo(member, "ゴールド");
    Member_delete(member);
    return 1;
}
リスト8:実行結果
>gcc main.c User.c Member.c ServiceStatus.c
>a.out
現在のサービスステータスは ブロンズ です
現在のサービスステータスは ゴールド です

 changeServiceStautsToメッセージが、メンバオブジェクトからサービスステータスオブジェクトへ委譲されて、処理が実行されていることが確認できました。

 委譲を用いたプログラミングでは、このように他のさまざまなオブジェクトから必要な機能をピックアップして再利用して、独自の機能を持つ、新たなオブジェクトを作り出していきます。 また、委譲を使うことで、より柔軟で再利用可能な機構を構築することも可能です。たとえば、この委譲先の部分に、前回解説したような多態性を持たせると動的に委譲先を切り替えることが出来、より柔軟な構造を実現することが出来ます。

おわりに

 これまでの連載記事を通じて、C言語によるOOPを通してオブジェクト指向の基本的な概念について解説してきました。いかがだったでしょうか。「カプセル化」や「継承」など、用語こそCプログラマの皆さんに耳慣れない言葉だったかと思いますが、言葉の意味や実現しようとしていることは、どれも皆さんが普段普通に考えているようなことだったのではないでしょうか。

 オブジェクト指向というアプローチの中で使われているさまざまな用語は、どれもプログラミングという問題領域における考え方や手法に名前を与えたものです。恐れずに、普段している作業や思考と照らし合わせて、是非理解を進めていっていただければと思います。

 本稿が、少しでも皆さんのオブジェクト指向の理解に貢献できたのなら幸いです。最後になりますが、短い間でしたが連載にお付き合いくださった皆様に心より感謝いたします。どうもありがとうございました。それでは、また別の記事でお会いしましょう。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Cでわかるオブジェクト指向

著者プロフィール

  • 島田 浩二(Ruby札幌)(シマダ コウジ)

    1978年生まれ。電気通信大学電気通信学部情報工学科卒業後、メーカ系ソフトウェア会社にて携帯電話の開発業務に従事した後、2006年より札幌にてフリーのプログラマとして活動。2009年7月に株式会社えにしテックを設立し、同社代表取締役に就任。 日本Rubyの会理事、一般社団法人LOCAL理事、Ru...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5