【发布时间】:2013-02-24 12:00:29
【问题描述】:
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 语言似乎没有这样的系统的情况。
【问题讨论】:
-
也许这有帮助:forum.dlang.org/thread/…
标签: d metaclass class-reference