我一直在使用“const ObjArray&
”作为ObjArray模板的参数而没有考虑它。它看起来工作正常,但是当我再次阅读它时,它看起来很不错。它不应该是“const ObjArray<T> &
”吗?引用没有参数的模板名称可以吗?它是否仅仅是因为它被内联编译器假定为T而工作?使用不带模板参数的C++模板名称
template <class T>
class ObjArray : public BArray
{
public:
inline ObjArray() :
BArray(sizeof(T), NULL)
{
}
inline ObjArray(const ObjArray& src) :
BArray(sizeof(T), NULL)
{
copyFrom((ObjArray&)src);
}
inline ObjArray(ObjArray& src) :
BArray(sizeof(T), NULL)
{
copyFrom(src);
}
...
};
在类定义里面可以。 – juanchopanza
类名在其自己的定义中可见。这被称为“类名注入”。对于类模板,如果没有模板参数,则模板名称将被视为注入的类名称。所以是的,在'ObjArray'的定义中使用'ObjArray'就没关系。 –