1
我有一個自定義模板,我想在我的C++類中進行初始化。我想直接設置它的大小。構造C++類中的自定義模板
模板類,vector3d.hh
template <typename T>
class vector3d {
public:
vector3d(size_t d1=0, size_t d2=0, size_t d3=0, T const & t=T()) :
d1(d1), d2(d2), d3(d3), data(d1*d2*d3, t){}
T & operator()(size_t i, size_t j, size_t k) {
return data[i*d2*d3 + j*d3 + k];
}
T const & operator()(size_t i, size_t j, size_t k) const {
return data[i*d2*d3 + j*d3 + k];
}
private:
size_t d1,d2,d3;
std::vector<T> data;
};
類中,我wouldl喜歡初始化我的模板變量:
#include "vector3d.hh"
class foo{
public:
vector3d<int> testvector(1000,2000,3000);
}
但是,試圖編譯這段代碼生成以下錯誤在我的初始化指向vector3d:
error: expected identifier before numeric constant
我知道這不是我們如何構建這些東西在課堂上。這樣做的適當的錯誤是什麼?假設我不能使用新的C++ 11標準。
爲您初始化''中vector3d'的構造data'你應該初始化''中foo'的構造testvector',用同樣的方法。 – Petr