CArray<int,int>& tmpArray

来源:互联网 发布:app建站 编辑:程序博客网 时间:2024/06/14 04:43
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)


0 0
原创粉丝点击