C++函数模板问题

C++语言 码拜 8年前 (2016-04-28) 895次浏览
#include<iostream>
using namespace std;
template<typename T>
void sort(T &s,int n)
{
	int i,j;
	T t;
	for (i = 0; i < n - 1; i++)
	{
		for (j = 0; j < n - i - 1; j++)
		{
			if (s[j] < s[j + 1])
			{
				t = s[j];
				s[j] = s[j + 1];
				s[j + 1] = t;
			}
		}
	}
}

报错
但参数用指针接就没问题,怎么回事啊

解决方案

5

引用不能当指针用,也不能当数组用
需要指针可以传递指针的引用
需要数组可以传递数组的引用
而不是直接把引用当作数组或指针使用

15

假如你的参数是数组,那么T的类型也是数组,而t = s[j];就会有问题,原因是你不能给数组赋值

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++函数模板问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)