SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

【第4回】多態性


多態性の実行サンプル

 準備は以上です。それでは、多態性が実現出来ているか試してみましょう。

リスト12:多態性の実行サンプル
#include "Guest.h"
#include "Member.h"

/* エントリポイント */
int main(int argc, char* argv[])
{
    int user_num = 2;
    User* user[user_num];
    int i;
	
    user[0] = (User*)Guest_new(0);
    user[1] = (User*)Member_new(1, "snoozer05");

    for (i = 0; i < user_num; i++) {
        user[i]->action(user[i]);
    }

    Guest_delete((Guest*)user[0]);
    Member_delete((Member*)user[1]);
	
    return 1;
}
リスト13:実行結果
>gcc main.c User.c Member.c Guest.c
>a.out
Guest : id0さんは、実行のための権限がありません
Member : snoozer05さん、ようこそ!

 userに格納されたオブジェクトに従って、それぞれの処理が実行されたことが確認できました。

まとめ

 いかがだったでしょうか。今回は、OOPでよく使われる多態性について、C言語を用いた簡単な実装例とともに解説しました。本稿が、少しでも皆さんのオブジェクト指向の理解に貢献できたのなら幸いです。次回もお楽しみに。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Cでわかるオブジェクト指向連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3709 2009/03/17 13:11

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー