源文件中的模板类方法

时间:2015-05-31 14:55:49

标签: c++ templates

我有模板类的头文件:

#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;之前的预期初始化程序令牌无效   冒泡::计算(){              ^

我该如何解决?

1 个答案:

答案 0 :(得分:1)

这是因为你混淆了BubbleBubbleSort,可能还有标题bubble.hbubbleSort.h