我有模板类的头文件:
#ifndef BUBBLE_H
#define BUBBLE_H
#include "algorithm.h"
template <typename T>
class Bubble : public Algorithm <T> {
public:
Bubble(T* in, int inSize) : Algorithm<T>(in, inSize){}
void compute();
};
#endif // BUBBLE_H
如果我把整个compute()类放在这里一切正常。但是我想把它放在cpp文件中。我写道:
#include "bubbleSort.h" using namespace std;
template <typename T>
void BubbleSort<T>::compute(){ //(*)
for (int i = 1; i<this->dataSize; i++){
for (int j = this->dataSize-1; j>=i; j--){
if(this->data[j] < this->data[j-1]) swap(this->data[j-1], this->data[j]);
}
} }
但我在第(*)行收到错误:
错误:在&#39;&lt;&#39;之前的预期初始化程序令牌无效 冒泡::计算(){ ^
我该如何解决?
答案 0 :(得分:1)
这是因为你混淆了Bubble
和BubbleSort
,可能还有标题bubble.h
和bubbleSort.h
。