我呼籲我的C模板++程序:我應該用C++分開cpp和h文件嗎?
const matrix::CMatrix<double> M1(3,3,{{5.0,0.0,2.0},{1.0,1.0,3.0},{6.0,7.0,7.0}});
我得到這樣的鏈接錯誤:
tests.h:15: undefined reference to `matrix::CMatrix<double>::CMatrix(int, int, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >)'
大規模的搜索,終於我意識到這是因爲我分開我的H和CPP文件而template
不能容忍它。在C中,建議分隔c和h文件並使用Makefile。但根據C++中的這些問題,它仍然建議將cpp和h文件分開嗎?在h文件和cpp文件中的一些其他函數中實現一些模板並不是乾淨的方式。我該怎麼辦?
編輯:
matrix.h
template<typename T>
class CMatrix
{
.....
matrix.cpp
implementation of CMatrix
的main.cpp
defining M1
你是什麼意思的「分離」?您的模板在(.cpp或.h)中聲明的位置以及它的使用位置在哪裏? – Ashalynd 2014-12-13 08:03:13