我在NetBeans上运行此问题时遇到问题。 这是我的泡泡排序算法类,包括主要功能:
#include <iostream>
using namespace std;
template <class elemType>
class arrayListType
{
public:
void BubbleSort();
private:
elemType list[100];
int length;
void swap(int first, int second);
void BubbleUp(int startIndex, int endIndex);
void print();
void insert();
};
template <class elemType>
void arrayListType<elemType>::BubbleUp(int startIndex, int endIndex)
{
for (int index = startIndex; index < endIndex ; index++){
if(list[index] > list[index+1])
swap(index,index+1);
}
}
template <class elemType>
void arrayListType<elemType>::swap(int first, int second)
{
elemType temp;
temp = list[first];
list[first] = list[second];
list[second] = temp;
}
template <class elemType>
void arrayListType<elemType>::insert()
{
cout<<"please type in the length: ";
cin>>length;
cout<<"please enter "<<length<<" numbers"<< endl;
for(int i=0; i<length; i++)
{
cin>>list[i];
}
}
template <class elemType>
void arrayListType<elemType>::print()
{
cout<<"the sorted numbers" << endl;
for(int i = 0; i<length; i++)
{
cout<<list[i]<<endl;
}
}
错误在此函数声明中表示:
template <class elemType>
void arrayListType<elemType>::BubbleSort(elemType list[], int numvalues)
{
insert();
int current=0;
numvalues--;
while(current < numvalues)
{
BubbleUp(current,numvalues);
numvalues--;
}
print();
}
主要功能:
int main()
{
arrayListType<int> list ;
list.BubbleSort();
}
之前我做了另一种排序算法,但效果很好。我怎样才能真正解决这个原型匹配问题?
答案 0 :(得分:0)
错误在于:
/@
在您的课程中,您为该方法编写了一个原型,如下所示:
template <class elemType>
void arrayListType<elemType>::BubbleSort(elemType list[], int numvalues)
这不匹配:
void BubbleSort();
要解决错误,请从实际实现中删除参数,或将参数添加到原型中。您的错误是不言自明的,它抱怨原型与定义不匹配。