CArray<int,int&> TmpArray;
是模板数组。int 是存储类型,int&是访问类型。
CArray是个模板类,其中成员变量、函数可用到模板形参表中的任一类型
template<class FirstType, class SecondType>
class CArray
{
public:
FirType elem1;
SecType elem2;
};
则声明CArray<int,int>就相当于
class CArray
{
public:
int elem1;
int elem2;
};
CArray<int,int>&r就是一个CArray类型变量的引用。
就是人家帮你做了个数组结构,里面封装了例如取数组第几个元素,增加,删除等等
(学过数据结构应该知道,还有几个类似的模板)
CArray<int,int> tmpArray;
告诉你定义的tmpArray每一个值是整型的,如果你要换double,就把int改了
那么每一个值类型就变了相应类型了
在写一个函数的时候,需要一个CArray作为参数,当使其作为形参时,提示拷贝函数错误,才发现CArray作为函数的形参是不行的,因为函数调用时,实参形参结合需要拷贝函数,而CArray类模板没有提供此拷贝函数。故建议用指针代替实体。
因此将函数形式由
void func(CArray<int, int> t)
改为void func(CArray<int, int> *t)或void func(CArray<int, int> &t)
本文介绍了CArray模板类的使用方法,包括如何定义不同类型的数组及其操作,并探讨了CArray作为函数参数时可能出现的问题及解决方案。
796

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



