有几种写法,我不是很明白
前提,job是一个类型
struct job {
char * name;
double salary;
int floor;
};
一.
template<> void swap<job>(job &j1,job &j2);
为什么 template后面的尖括号中什么也没有呢?
应该是什么呢?是省略了,还是本来就是没有的?
还有 <job> 是什么意思呢?
为何可以省略呢?
即: template<> void swap(job &j1,job &j2);
也是可以的?
二.下面两种写法,与上面的写法有什么区别呢?
void swap<job>job &j1,job &j2);
void swap(job &j1,job &j2);
其中,void swap(job &j1,job &j2); 就是普通的函数原型,可是
void swap<job>job &j1,job &j2); 中的<job>是什么意思呢?
7 个解决方案
#1
void swap<job>(job &j1,job &j2);
表示是一个模板函数,结构体job是模板函数的数据类型。
表示是一个模板函数,结构体job是模板函数的数据类型。
#2
++
#3
顶一下。
#4
路过 帮顶~
#5
顶顶。。。。
#6
楼主搜索下 模板特化
#7
++
#1
void swap<job>(job &j1,job &j2);
表示是一个模板函数,结构体job是模板函数的数据类型。
表示是一个模板函数,结构体job是模板函数的数据类型。
#2
++
#3
顶一下。
#4
路过 帮顶~
#5
顶顶。。。。
#6
楼主搜索下 模板特化
#7
++