Dにクラス参照のシステムはありますか? より正確に言うと、Delphi に相当するものを探します。
TMyClassRef = class of TMyClass;
これはファクトリに使用されます (Object
クラス名を使用しない場合と同様):
// ideally
void AddNew(*TBaseClass APtr, /*?class_ref_type?*/ AClassType)
{
*APtr = new AClassType;
}
現在、私はこれを行います:
void AddNew(*TBaseClass APtr)
{
*APtr = new typeof(*APtr);
}
しかし、問題は、 (サブクラスがパラメーターとして渡された場合) のサブクラスをtypeof()
常に返しTBaseClass
、決して返さないことです。TBaseClass
これは明らかに、Delphi でクラス参照が使用されるケースですが、D 言語にはそのようなシステムがないようです。