多態性の実行サンプル
準備は以上です。それでは、多態性が実現出来ているか試してみましょう。
#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言語を用いた簡単な実装例とともに解説しました。本稿が、少しでも皆さんのオブジェクト指向の理解に貢献できたのなら幸いです。次回もお楽しみに。
