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 言語にはそのようなシステムがないようです。