当使用模板类型中定义的类型时,该怎么办呢?可以使用关键字typename。
例如
class AType {
public:
typedef int value_type;
};
template<class T>
class TSample {
typedef typename T::value_type value_type;
}
当使用TSample<AType>的时候,TSample的value_type就变成了AType::value_type。
当需要一个非实例化模板内部定义的类型时,就必须使用typename了。比如,定义一个模板类,这个类又使用了std::vector,
template<class T>
struct MyVector {
std::vector<T> vec;
typedef typename std::vector<T>::iterator;
};
本文探讨了在C++模板类型中使用关键字typename的方法,详细解释了如何在模板类中引用非实例化类型的实例,通过具体例子展示了typename的用法,并介绍了如何在模板类中使用std::vector作为类型参数。
388

被折叠的 条评论
为什么被折叠?



