您好,登錄后才能下訂單哦!
#ifndef _ARRAY_H_
#define _ARRAY_H_
/*
* 實現一個數組類模板,在棧上
* why
* 2016/9/5
*/
template
< typename T, int N >
class Array
{
private:
T m_array[N];
public:
int length(); //獲取數組長度
bool set_array(T value, int index); //設置數組元素內容
bool get_array(T& value, int index); //獲取數組元素內容
T& operator [](int index); //重載[]操作符,方便數組對象的操作
T operator [](int index) const; //如果用戶定義的是const的數組對象,那么訪問數組元素時,就需要用const修飾的成員函數
virtual ~Array(); //析構函數最好定義成虛函數,可以讓繼承此類的類重寫這個析構函數。當然這里可以不是vitrual的,因為如果構造函數是private而不是protected,
//就是不想讓這個類被繼承,所以可以不用vitrual,但如果構造函數等是protected的,說明是想被繼承的,如果想被繼承,那么析構函數最好是virtual的
};
template
< typename T, int N >
int Array<T, N>::length()
{
return N;
}
template
< typename T, int N >
bool Array<T, N>::set_array(T value, int index)
{
bool ret = (0 <= index) && (index < N);
if (ret)
{
m_array[index] = value;
}
return ret;
}
template
< typename T, int N >
bool Array<T, N>::get_array(T& value, int index)
{
bool ret = (0 <= index) && (index < N);
if (ret)
{
value = m_array[index];
}
return ret;
}
template
< typename T, int N >
T& Array<T, N>::operator[](int index)
{
return m_array[index];
}
template
< typename T, int N >
T Array<T, N>::operator[](int index) const
{
return m_array[index];
}
template
< typename T, int N >
Array<T, N>::~Array()
{
}
#endif
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。