我在学习函数模板的时候,代码完全和视频里面敲的一样,希望有人能告诉我怎么改正这些错误
程序代码:
#include <iostream> using namespace std; //排序算法 //交换函数模板 template<class T> void mySwap(T & a,T & b) { T temp=a; a=b; b=temp; } void mySort(T arr[],int len) { for (int i=0;i<len;i++) { int max=i; for (int j=i+1;j<len;j++) { if (arr[max]<arr[j]) { max=j; } } if (max!=i) { mySwap(arr[max],arr[i]); } } } //提供打印数组模板 template<class T> void printArray(T arr[],int len) { for (int i=0;i<len;i++) { cout<<arr[i]<<" "; } cout<<endl; } void test01() { //测试char数组 char charArr[]="badcefhg"; int num=sizeof(charArr)/sizeof(char); mySort(charArr,num); printArray(charArr,num); } int main() { test01(); system("pause"); return 0; }
错误提示有
error C2065: “T”: 未声明的标识符
error C2146: 语法错误 : 缺少“)”(在标识符“arr”的前面)
error C2182: “mySort”: 非法使用“void”类型
error C2059: 语法错误 : “)”
error C2143: 语法错误 : 缺少“;”(在“{”的前面)
error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
error C2064: 项不会计算为接受 2 个参数的函数