任何种类的分数 在任何类型的订单中

Fraction in any kind of in any kind of orders

本文关键字:任何 单中 类型 种类      更新时间:2023-10-16

嗨,我有一个家庭作业,可以更新任何类型的函数输入分数 但我不知道我错了什么:<你能帮我吗>

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>放在所有内容之前的问题。

  1. main不能是模板

  2. 很明显,您正在尝试编写代码,其中可以包含不同基本类型的分数,例如Fraction<int>Fraction<long>。因此,在主中选择所需的类型

    int main()
    {
    Fraction<int> a[100];
    int n;
    inputFraction(a, n);  
    }
    
  1. 现在inputFraction写成一个模板函数,该函数使用Fraction<T>T作为参数

    template <class T>
    void inputFraction(Fraction<T> a[], int &n) {
    ...
    }
    
  2. 您拥有的Fraction模板很好。错误无处不在。