Managed C++
唐突にManaged C++がやりたくなったので,ちまちまと小さいコードを書いてみた.
// これは、アプリケーション ウィザードを使って生成された、VC++ アプリケーション プロジェクトの
// メイン プロジェクト ファイルです。
#include "stdafx.h"
#using <mscorlib.dll>
using namespace System;
public __gc __interface IRunnable
{
void Run(String* str);
};
public __gc class Base : public IRunnable
{
public:
Base() { Console::WriteLine("created"); }
virtual ~Base() { Console::WriteLine("destroyed"); }
void Run(String* str) { Console::WriteLine(str); }
};
int _tmain()
{
// TODO: 下のサンプル コードを独自のコードに置き換えてください。
IRunnable* inst = new Base();
inst->Run("Hello world!");
return 0;
}
ポイントは,C++の構文でインタフェースが使えることか.
純粋仮想関数をインタフェース代わりに使うのって,なんか気に入らないので・・・.
STLとの親和性はどうなんかな?
でもやはり明示的なdeleteが不要なのはうれしい!
メモリリークらしき現象が起こってるところだし(^^;
ほったらかしなんでそのうち直します・・・.