0
template <class DataType> /// Declaring the template class Datatype
class Vector
{ public:
Vector()
{m_data = new DataType[9999];
m_size = 1;
m_current = 0;
}
Vector(int size) /// Constructing vector
{ m_data = new DataType[size];
m_size = size;
m_current = -1;
}
///////////////////////////////////////
/// Creating Push and Pop methods
///////////////////////////////////////
bool push(const DataType data)
{ if (m_current < m_size)
{ m_current++;
m_data[m_current] = data;
return true;
}
else
{ return false; }
}
bool pop(DataType &data)
{ if (m_current==-1)
{ cout << "Nothing to pop";
return false;
}
else
{ data = m_data[m_current];
m_current--;
return true;
}
}
///////////////////////////////////////
/// Methods to access the private m_data
///////////////////////////////////////
float retrievefloat(int pointer)
{
return m_data[pointer];
}
string retrievestring(int pointer)
{
return m_data[pointer];
}
int retrieveint(int pointer)
{
return m_data[pointer];
}
int retrievecurrent()
{
return m_current;
}
int retrievesize()
{
return m_size;
}
private:
DataType* m_data;
int m_size;
int m_current;
};
好了,我們這裏有一個自定義的模板矢量類。這裏的問題是,我希望包含一個clear()
函數。我知道幾乎你可以做int m_size = 0
和int m_current = -1
。但你如何重置m_data?自定義矢量的清除功能
嘗試delete [] m_data
當我想在調用clear
函數之後再次推入數據時,程序崩潰。