2012-12-14 27 views
-1

我用下面的代碼來編寫我的模板而不是頭文件,因爲我更喜歡保持代碼清潔。我有一個爲cpp中的某個類定義的模板函數 - 不是hpp。它可以被兒童班使用嗎?

Storing C++ template function definitions in a .CPP file

.HPP
template <class obj_class> void plotLaser(int zoom, void * obj);

的.cpp
class visualizer {...};
class annotator : public visualizer {...};
template void plotLaser<visualizer>(int zoom, void * obj) {...};

我可以使用該模板來致電plotLaser<annotator>(...);還是必須重寫它?

+4

你試過了嗎? –

+0

不,我現在正在分裂我的班級,說實話,我不能把事情搞得更糟。我會稍後嘗試它,可能會使用虛擬類。 – sfotiadis

回答

0

你需要重新寫它我想。 因爲你的代碼

template void plotLaser<visualizer>(int zoom, void * obj) {...}; 

是一個專業化。

如果你需要一個註釋器,你需要一個專門化。

相關問題