嗨,我有一个家庭作业,可以更新任何类型的函数输入分数 但我不知道我错了什么:<你能帮我吗>你能帮我吗>
template <class T> struct Fraction {
T num, denom; //num - Numerator ; demon-Denominator
};
template <class T>
void inputFraction(T a[], int &n) {
cout << "Enter n:"; //number of Fractions
cin >> n;
for (int i = 0;i < n;i++) {
cout << "Enter Numerator:";
cin >> a[i].num;
cout << "Enter Denominator:";
cin >> a[i].denom;
}
}
template <class T>
int main()
{
T a[100];
int n;
inputFraction(a, n);
}
它不起作用.我穿在哪里?
显然,在理解模板方面你还有一段路要走。编写模板代码不仅仅是将template <class T>
放在所有内容之前的问题。
main
不能是模板很明显,您正在尝试编写代码,其中可以包含不同基本类型的分数,例如
Fraction<int>
或Fraction<long>
。因此,在主中选择所需的类型int main() { Fraction<int> a[100]; int n; inputFraction(a, n); }
现在
inputFraction
写成一个模板函数,该函数使用Fraction<T>
不T
作为参数template <class T> void inputFraction(Fraction<T> a[], int &n) { ... }
您拥有的
Fraction
模板很好。错误无处不在。