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 < double, double > Crray;
double ddd = 123456;
CrrayAdd(ddd) ;
//元素只可以一个一个地加
C语言的数组类型没有专用的方法,不能直接判断长度。
可以通过sizeof()运算符计算长度!
sizeof(数组名)/sizeof(类型)
---------------------------------------------------
EXP:
int array[18]; char ch[20];
sizeof(array)/sizeof(int);
sizeof(ch)/sizeof(char);
==================================
用了的C++模板类。
CArray是个MFC提供的模板类,他实现一个数组,但是这个数组比C默认提供的更好,可以动态改变大小,不需要向C语言基本的数组那样必须在定义的时候显式指定数组大小。数组的类型有模板的参数给定,比如你的代码里他产生了储存CPoint对象的数组。
需要包含的头文件 <afxtemplh>
http://baikebaiducom/view/1524597htmlwtp=tt这个就已经很详细了!
我以前碰到的问题是这样解决的
在stdafxcpp中写上 CArray<MsgStruct,MsgStruct> arr;
在stdafxh中加上 extern CArray<MsgStruct,MsgStruct> arr;
把你原来定义这个数组的地方删掉,把这个结构体也放到stdafxh中去
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)