1

我对模板很陌生,所以如果我的代码非常错误,请不要对我苛刻:) 这是Key使用模板的类的头文件:

//Key.h
#ifndef KEY_H
#define KEY_H

#include "../Constants.h"

template<class KeyType>

class Key
{
    public:
        Key<KeyType>(KeyType initial);          
        KeyType increment();

    private:
        KeyType current;

};

#endif /* KEY_H */ 

这是Key类的 .cpp 文件:

//Key.cpp
#include "Key.h"

template<class KeyType> Key<KeyType>::Key(KeyType p_initial)
{
    this->current = p_initial;
}

template<class KeyType> KeyType Key<KeyType>::increment()
{
    this->current ++; //KeyType should implement this operator
}

所以有什么问题?我尝试Key在我的代码中创建其他地方的实例,如下所示:

关键歌曲ID(0);// 错误:未定义的引用Key<int>::Key(int)

然后使用

songID.increment(); // 错误:未定义的引用Key<int>::increment()

4

1 回答 1

1

两点:

于 2013-04-14T06:13:19.597 回答