D中是否有任何类引用系统?为了更准确,我寻找相当于德尔福
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 语言似乎没有这样的系统的情况。