我有一個自定義陣列類
template <typename T, unsigned L>
class Array
{
T m_buff[L];
};
我的目標是宣告一個函式,該函式將獲取 Array 類的副本并使用其值回傳所有元素的總和。
問題是代碼只為定義為的函式編譯,int sum(Array<int, 3> a)而不是為定義為的函式編譯int sum(Array<int> a)。
uj5u.com熱心網友回復:
不適用于定義為 int sum(Array a) 的函式。
那是因為Array<int>不是有效型別。您的Array模板需要兩個引數,而不是一個。
您正在尋找的只是另一個模板函式:
template<unsigned size> int sum(const Array<int, size> &a)
{
// Function code here:
}
至于如何編碼:簡單地想一下你的代碼需要是什么,在你的情況下Array<int, 3>,或者,也許,用/Array<int, 100000>替換3或100000size
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/373609.html
