---- C++ ----
#include <iostream>
using namespace std;
class D{
public:
virtual int bar(int i, int j, int k){
cout << "i = " << i << endl;
cout << "j = " << j << endl;
cout << "k = " << k << endl;
return 8;
}
};
D *getD(){
D *d = new D();
return d;
}
---- D ----
extern (C++){
interface D{
int bar(int i, int j, int k);
}
D getD();
}
void main(){
D d = getD();
d.bar(9,10,11);
}

例にこんなのあるけど何かダサくね?
D d = D::create();
とか無理なんけ?