c++ 函数模板的问题
#include<iostream>usingnamespacestd;template<classType>Typedelete(Type&a[],int&n,inti...
#include <iostream>
using namespace std;
template<class Type> Type delete(Type& a[], int& n, int i);
void main()
{
int n=6;
int i,k;
int a1[6]={1,2,3,4,5,6};
cout<<"i取值范围为0~4";
cout<<"i=";
cin>>i;
int x=delete(a1,n,i);
for(k=0;k<n;k++)
cout<<a1[k]<<' ';
}
template<class Type>
Type delete(Type& a[], int& n, int i)
{
Type x;
x=a[i];
for(int j=i+1;j<n;j++)
a[j-1]=a[j];
n--;
return x;
}
f:\c++\第七章课后题\第四题\3\3\3.cpp(3) : error C2988: 不可识别的模板声明/定义
f:\c++\第七章课后题\第四题\3\3\3.cpp(3) : error C2059: 语法错误 : “delete”
f:\c++\第七章课后题\第四题\3\3\3.cpp(5) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
f:\c++\第七章课后题\第四题\3\3\3.cpp(5) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
f:\c++\第七章课后题\第四题\3\3\3.cpp(18) : error C2988: 不可识别的模板声明/定义
f:\c++\第七章课后题\第四题\3\3\3.cpp(18) : error C2059: 语法错误 : “delete”
谢谢! 展开
using namespace std;
template<class Type> Type delete(Type& a[], int& n, int i);
void main()
{
int n=6;
int i,k;
int a1[6]={1,2,3,4,5,6};
cout<<"i取值范围为0~4";
cout<<"i=";
cin>>i;
int x=delete(a1,n,i);
for(k=0;k<n;k++)
cout<<a1[k]<<' ';
}
template<class Type>
Type delete(Type& a[], int& n, int i)
{
Type x;
x=a[i];
for(int j=i+1;j<n;j++)
a[j-1]=a[j];
n--;
return x;
}
f:\c++\第七章课后题\第四题\3\3\3.cpp(3) : error C2988: 不可识别的模板声明/定义
f:\c++\第七章课后题\第四题\3\3\3.cpp(3) : error C2059: 语法错误 : “delete”
f:\c++\第七章课后题\第四题\3\3\3.cpp(5) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
f:\c++\第七章课后题\第四题\3\3\3.cpp(5) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
f:\c++\第七章课后题\第四题\3\3\3.cpp(18) : error C2988: 不可识别的模板声明/定义
f:\c++\第七章课后题\第四题\3\3\3.cpp(18) : error C2059: 语法错误 : “delete”
谢谢! 展开
展开全部
下面程序能在我的visual studio中运行,请试试。delete是其中已经定义的标识符,不能再次定义
#include <iostream>
using namespace std;
template<class Type> Type delete1(Type a[], int& n, int i);
void main()
{
int n=6;
int i,k;
int a1[6]={1,2,3,4,5,6};
cout<<"i取值范围为0~4";
cout<<"i=";
cin>>i;
int x=delete1(a1,n,i);
for(k=0;k<n;k++)
cout<<a1[k]<<' ';
}
template<class Type>
Type delete1(Type a[], int& n, int i)
{
Type x;
x=a[i];
for(int j=i+1;j<n;j++)
a[j-1]=a[j];
n--;
return x;
}
#include <iostream>
using namespace std;
template<class Type> Type delete1(Type a[], int& n, int i);
void main()
{
int n=6;
int i,k;
int a1[6]={1,2,3,4,5,6};
cout<<"i取值范围为0~4";
cout<<"i=";
cin>>i;
int x=delete1(a1,n,i);
for(k=0;k<n;k++)
cout<<a1[k]<<' ';
}
template<class Type>
Type delete1(Type a[], int& n, int i)
{
Type x;
x=a[i];
for(int j=i+1;j<n;j++)
a[j-1]=a[j];
n--;
return x;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果要定义自己的delete,要使用operator delete方式,且返回void,否则改函数名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete 是系统关键字,不能自定义为变量或者函数名 换个名字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询