关于模板函数 返回值有点问题,费解
请各位看看,如果你全都输入负数就会发现问题了。
是因为模板中为Type分配的大小有关?
#include<iostream>
template<class Type>
bool input(Type& inp);
int main()
{
int a1;
double a2;
float a3;
if(input(a1))
std::cout<<a1<<std::endl;
else
std::cout<<"负数:"<<a1<<std::endl;
if(input(a2))
std::cout<<a2<<std::endl;
else
std::cout<<"负数:"<<a2<<std::endl;
if(input(a3))
std::cout<<a3<<std::endl;
else
std::cout<<"负数:"<<a3<<std::endl;
system("Pause");
return 0;
}
template<class Type>
bool input(Type& inp)
{
Type in;
int i=3;
do{
std::cout<<"请输入一个非负数:";
std::cin>>in;
if(in<0){
std::cout<<"输入错误,您还有"<<(i-1)<<"次机会!"<<std::endl;
i--;
continue;
}
else{
inp=in;
return true;
}
}while(i>0);
return false;
}