template <class T>正确使用上述模板
class myClass
{
typename T::SubType *ptr;//如果没有typename 则T::SubType被解释为class T的静态变量,则此语句被解释为乘法
}
myClass<Q> x;
此时得保证Q中有类型SubType,可使用两种方法
1、
class Q2、
{
typedef int SubType;
}
class Q作为一般标准,没有typename修饰的任何标识符号都被视为一个值,如 T 在template中被标识了class/typename,所以T是一个类型,而T::SubType如果没有标识typename则被视为一个数值变量
{
class SubType;
}
没有评论:
发表评论