void swap(job &j1,job &j2);其中的是什么意思呢?

时间:2022-06-01 20:08:04
void swap<job>(job &j1,job &j2);其中的<job>是什么意思呢?

有几种写法,我不是很明白
前提,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是模板函数的数据类型。

#2


引用 1 楼 huayehanshan 的回复:
void swap<job>(job &amp;j1,job &amp;j2); 
表示是一个模板函数,结构体job是模板函数的数据类型。

++

#3


顶一下。

#4


路过 帮顶~

#5


顶顶。。。。

#6


楼主搜索下 模板特化

#7


引用 1 楼 huayehanshan 的回复:
void swap<job>(job &amp;j1,job &amp;j2); 
表示是一个模板函数,结构体job是模板函数的数据类型。

++

#1


void swap<job>(job &j1,job &j2); 
表示是一个模板函数,结构体job是模板函数的数据类型。

#2


引用 1 楼 huayehanshan 的回复:
void swap<job>(job &amp;j1,job &amp;j2); 
表示是一个模板函数,结构体job是模板函数的数据类型。

++

#3


顶一下。

#4


路过 帮顶~

#5


顶顶。。。。

#6


楼主搜索下 模板特化

#7


引用 1 楼 huayehanshan 的回复:
void swap<job>(job &amp;j1,job &amp;j2); 
表示是一个模板函数,结构体job是模板函数的数据类型。

++