大家好,又见面了,我是你们的朋友全栈君。
*关于void (visit)(const ElemType &)的理解
visit是一个函数指针,指向一个具体的函数,我们在具体使用visit时通过调用它(visit)的函数来调用它(visit)指向的函数,这个函数的形参列表为(const ElemType &),看代码:
template <class ElemType>
SeqList<ElemType>::SeqList(ElemType v[], int n, int size) //构造函数
{
elems = new ElemType[size];
assert(elems);
maxLength = size;
length = n;
for (int i = 0; i < length; i++)
elems[i] = v[i];
}
template <class ElemType>
SeqList<ElemType>::void traverse(void (*visit)(const T &))const
{
for(int i=0;i<length;i++)
{
(*visit)(elems[i]);
}
}
template <class ElemType>
void Write(const ElemType &e)
{
cout << e << " ";
}
int a[]={1,2,3};
SeqList<int> la(a,3,5);
la.Traverse(Write);
结果为:
单纯遍历表是没有用的,使用函数指针指向操作函数使遍历操作模式化,各种操作函数再通过Treverse函数来遍历表。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144710.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...