多態性の実行サンプル
準備は以上です。それでは、多態性が実現出来ているか試してみましょう。
#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;
}
>gcc main.c User.c Member.c Guest.c >a.out Guest : id0さんは、実行のための権限がありません Member : snoozer05さん、ようこそ!
userに格納されたオブジェクトに従って、それぞれの処理が実行されたことが確認できました。
まとめ
いかがだったでしょうか。今回は、OOPでよく使われる多態性について、C言語を用いた簡単な実装例とともに解説しました。本稿が、少しでも皆さんのオブジェクト指向の理解に貢献できたのなら幸いです。次回もお楽しみに。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- この記事の著者
-
島田 浩二(Ruby札幌)(シマダ コウジ)
1978年生まれ。電気通信大学電気通信学部情報工学科卒業後、メーカ系ソフトウェア会社にて携帯電話の開発業務に従事した後、2006年より札幌にてフリーのプログラマとして活動。2009年7月に株式会社えにしテックを設立し、同社代表取締役に就任。 日本Rubyの会理事、一般社団法人LOCAL理事、Ruby札幌主宰。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
