2012-12-14 25 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) {...}; 

是一个专业化。

如果你需要一个注释器,你需要一个专门化。

相关问题