我想爲一個項目做這樣的事情......C++模板,靜態分配的數組
template <class N> class MyClass { float properties[N]; };
反正在C++中做到這一點?
我想爲一個項目做這樣的事情......C++模板,靜態分配的數組
template <class N> class MyClass { float properties[N]; };
反正在C++中做到這一點?
你需要什麼叫值模板參數:
template <size_t N> class MyClass { float properties[N]; };
//^^^^^^ note this
現在你可以實例化這個類模板,傳遞任何非負積分值作爲模板參數。例如,
MyClass<10> c1; //N=10
MyClass<100> c1; //N=100
您也可以通過常量表達式爲:
const size_t size = 200;
MyClass<size> c2; //N=200
謝謝!多數民衆贊成什麼我需要的標題,但現在我不能讓.cpp文件正確編譯,當我嘗試並把類中的任何功能MSVC告訴我「使用類模板需要模板參數列表」。任何想法爲什麼? – 2012-02-27 01:55:26
@DavidCarpenter:我怎麼知道'.cpp'文件是什麼?它包含什麼? – Nawaz 2012-02-27 02:14:02
MyClass的成員函數的實現,就像構造函數一樣,但是visual studio用這個錯誤突出顯示它們 – 2012-02-27 02:15:22
我不明白你期待什麼。由「一些隨機類」索引的浮點數組? - 我會說不,你不能這樣做(但他們我沒有達到最新和最好的標準;-)。我會說你需要爲此創建自己的數據結構,而不是依賴本地數組。 – John3136 2012-02-27 01:40:19
通常我會但是這是一點性能密集 – 2012-02-27 01:56:25