我有任務,在那裏我必須寫一個類多維矢量C++模板問題
有人告訴我,我必須使用模板,這完全是新的給我,準確的說,然後我必須用template <unsigned short n>
,其中n定義了我的向量具有多少個維度。
到目前爲止,我有這一點,但它不工作:
vector.h
#include <vector>
template <unsigned short n>
class Vector {
public:
std::vector<float> coords;
Vector<n>();
};
vector.cpp
#include "vector.h"
Vector<n>() {
for(int i = 0; i < n; i++) {
coords.push_back(0.0);
}
};
我的默認構造函數使得矢量線爲0.0
我得到向量的錯誤。 CPP C:\CodeBlocks\kool\praks3\vector.cpp|3|error: 'n' was not declared in this scope|
此外 ..why我必須在這裏使用的模板,我讀的模板,教程,並用它來優化代碼,減少代碼repeation,但這裏的n必須始終無符號短
當我看看這個例子,我明白我使用模板,因爲我的數據類型可以是任何我想要的,我可以使用它來整數,雙打或任何種類的數字
但目前使用模板的重點是什麼,當我定義了我必須使用哪種數據類型?
template <class dataType>
dataType GetMin (dataType a, dataType b) {
return ((a < b) ? a : b);
}
如果有什麼不清楚的地方,隨時向我提問! ,因爲有很多困惑對我:)
很難相信你使用了一個功能,你有 - 顯然,還沒有研究。 – 2011-03-07 17:17:07
如果模板對您來說是新的,那麼它們可能是您班級中* everyone的新手,並且使用模板的要求可能是練習的目的*。如果有什麼你不瞭解你的課程,你應該去和你的老師談談。這就是他或她在那裏。你會得到專門針對你的知識水平的答案,並將其放入課程大綱的其餘部分。 – 2011-03-07 17:21:12
是的,我們還沒有研究它,我們假設谷歌和使用論壇來了解它,我們有一些例子等,但我不明白這一點。所以我想我做我的研究 – Jaanus 2011-03-07 17:27:49