【发布时间】:2013-02-07 00:18:53
【问题描述】:
我有一个接口 IEnumerable 用于 List、Array 和 Dictionary 的模板类。我希望使用 typedef 来获取他们的模板类型 T。
我希望做以下事情。
class IEnumerable
{
public:
virtual typedef int TemplateType;
}
然后在继承的成员中覆盖,但你不能创建一个虚拟类型定义。那么有没有其他方法可以获取未知模板类的类型(IEnumerable 不是模板)?
【问题讨论】:
-
重新标记为 C#,因为据我所知
virtual typedef不是 C++ 功能。 -
@templatetypedef 你读过这个问题吗?!我说 virtual typedef 不起作用,并询问有关替代方案的意见。请取消标记!
-
抱歉 - 因为您使用的类型名称如
IEnumerable、List、Array和Dictionary,我认为这是 C# 代码(因为这些类型没有内置到C++)。很抱歉! -
不,你不能那样做。类型将在编译时解析,因此动态类型在其中没有位置。
-
是的隐式类型。没错。
标签: c++ templates polymorphism typedef