...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

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が不要なのはうれしい!
メモリリークらしき現象が起こってるところだし(^^;
ほったらかしなんでそのうち直します・・・.