有一结构体:
typedef struct {
int No;
int* Ptr;
} TChInfo;
一个CArray 类模板
template <class TType, char ARRAY_SIZE = 100》
class CArray {
...
private:
int mArrayCtr;
TType mArrayBuf[ARRAY_SIZE];
}
typedef CArray 《TChInfo, 200》TChList;
类:
class Test{
...
private:
TChList mChList;
}
在Test成员函数中调用则:
mChList[0].No 表示什么? 这什么用法?跟容器有关吗 为什么mChList[0]变成了TChInfo类型 而不是mChList类类型 这样表示mChList.mArrayBuf[0].No 与 mChList[0].No等价吗
CArray是一个模板类,你传入的是什么类型实例,他就按什么类型运作
CArray 是模板数组,你定义mChList的时候,指定了CArray里面每个元素是TChInfo类型的
mChList[0]取得就是数组的第一个元素,也就是一个TChInfo类型的对象,所以后面可以用.No来取成员变量
好多问题
1、mChList[0].No 表示什么?
按照意思应该是TChInfo类的实例化对象后的成员变量No,但是这里模板中没有进行默认class TType=TChInfo
2、这什么用法?
这个是模板,宏定义别名加上类指针,指向自身成员变量
3、这不是容器,只是模板类的使用,加上了宏别名,等价的,如果修改一下的话