用指针传递也是可以的,也可以改变实参的值,但是不如引用传递高效!
template <typename T>
void swappNum(T *a,T *b)
{
T temp = *a;
*a = *b;
*b = temp;
}
int main(void)
{
int x = 10;
int y = 20;
swappNum<int>(&x,&y);
cout << "x = " << x << endl;
cout << "y = " << y << endl;
return 0;
}
template <typename T>
void swappNum(T *a,T *b)
{
T temp = *a;
*a = *b;
*b = temp;
}
int main(void)
{
int x = 10;
int y = 20;
swappNum<int>(&x,&y);
cout << "x = " << x << endl;
cout << "y = " << y << endl;
return 0;
}
为什么我 cout<<(coor1++).getX(); 输出的是-858993460, 但是这样 coor++; cout<<coor1.getX(); 输出的就是2.
2016-10-25
1. 函数模板本身不会在内存中产生代码, 因为没有模板参数就无从知道要合成怎样的函数
2. 模板参数可以是类型, 变量(编译时实际上是常量), 或多个类型和变量的组合
3. 同一个函数模板的不同的模板函数之间可以看作互为重载
4. 函数名称相同但模板参数或函数参数不同的来自不同函数模板的模板函数之间也可以互为重载
2. 模板参数可以是类型, 变量(编译时实际上是常量), 或多个类型和变量的组合
3. 同一个函数模板的不同的模板函数之间可以看作互为重载
4. 函数名称相同但模板参数或函数参数不同的来自不同函数模板的模板函数之间也可以互为重载
2016-10-18