CのコードとC++のコードが混在する環境では、CのコードからC++のコードを呼び出すことが必要になる場合があります。
このページでは、CのコードからC++のコードを呼び出す方法について説明します。
尚、逆にC++のコードからCのコードを読み出す方法については「C++のコードからCのコードを読み出す」のページをご参照ください。
Cのコードから、C++のコードを直接呼び出すことは出来ないため、C++のコード側でCのコードに利用させる部分を「extern "C"」宣言します。
#include <stdio.h> class Person { public: virtual void ask(); }; class GoodPerson : public Person { public: void ask() { puts("そんなことしちゃ駄目だよ!"); } }; class EvilPerson : public Person { public: void ask() { puts("やっちまえよ、へっへっへ…"); } }; extern "C" void askOpinion() { Person *tPerson; tPerson=new GoodPerson(); tPerson->ask(); delete(tPerson); tPerson=new EvilPerson(); tPerson->ask(); delete(tPerson); }
呼び出す側のCのコードでは、「extern "C"」宣言したコードをそのまま利用することが可能です。
#include <stdio.h> void main() { askOpinion(); }
・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。
まだ評価がありません |
表示できるメッセージはありません。