0
這是我的.h文件。鏈接錯誤,同時使模板化的Queue類
#include <vector>
#include "basequeue.h"
namespace advanced {
template<class T>
class AdvancedQueue {
public:
virtual ~AdvancedQueue();
void GetInfo(vector<T>* events);
void Push(const T& event);
bool Pop(T* event);
bool Wait(T* event);
private:
BaseQueue<T> queue_;
};
}
而我在相應的cpp文件中有這些實現。當我使用它時,我有像這樣的鏈接問題....
function advanced::Service::Handler(BaseHandler*): error: undefined reference to 'advanced::AdvancedQueue<advanced::Dashboard>::Pop(advanced::Dashboard*)'
有沒有一種方法來指定我將使用「儀表板」類?我必須單獨做這件事嗎?
的可能的複製[爲什麼模板只能在頭文件中實現?(http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-文件) –
在哪裏會實現'Pop(T *);'?究竟! –
Pop(T *)在CPP文件中實現 – Narabhut