我之前一直在使用"const ObjArray&
"作为ObjArray模板的参数,但并没有仔细思考过这个问题。看起来它能够正常运行,但当我重新阅读时感觉有些不对劲。应该是"const ObjArray<T> &
"才对吧?在没有指定参数的情况下引用模板名称是否可行?它之所以能够正常工作,是因为被声明为内联函数,编译器自动推断了T的值吗?
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);
}
...
};
ObjArray
的定义中仅使用ObjArray
是可以的。 - n. m.