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();
}
・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。
| まだ評価がありません |
表示できるメッセージはありません。