【发布时间】:2020-06-27 12:35:34
【问题描述】:
您好,我已经分配了任何类型的分数的排序数组(升序或降序) 但是当我调用函数 doSomething 时就出错了。
template <class T>
struct Fraction {
T num, denom; //num - Numerator ; demon-Denominator
};
template <class T>
void AscendingArrayFraction(Fraction<T> a[], int n)
{
for (int i = 0;i < n;i++) {
for (int j = i + 1;j < n;j++) {
if (compareFraction(a[i], a[j]))
swapFraction(a[i], a[j]);
}
}
}
template <class T>
void DescendingArrayFraction(Fraction<T> a[], int n)
{
for (int i = 0;i < n;i++) {
for (int j = i + 1;j < n;j++) {
if (!compareFraction(a[i], a[j]))
swapFraction(a[i], a[j]);
}
}
}
template <class T>
void doSomething(Fraction<T> a[], int n, T(*p) (Fraction<T>, int)) {
return p(a,n);
}
int main()
{
Fraction<int> a[100];
int n;
inputFraction(a, n);
doSomething(a, n, AscendingArrayFraction(a,n)); // It's have a problem right here
}
看来我还是没看懂这节课(抽象)。你能帮我修复函数doSomething吗??
【问题讨论】:
-
究竟出了什么问题?具体说明预期的输出以及实际得到的输出。
-
请定义“这是错误的”。