【发布时间】:2017-07-12 23:27:37
【问题描述】:
我正在尝试为一类数组编写一个带有函数的模板类。 我将一些似乎适用于 int、float、double 的东西放在一起,但不适用于字符串。我包括了,并且正在使用命名空间标准。
除非我使用字符串,否则一切都可以编译,并且工作正常,在这种情况下,它会在 resize 函数中出错。
在头文件中我有以下相关代码(因为一切都编译并且错误只存在这里):
template<typename T>
void Array<T>::resize(int newSize)
{
T* newArray = new T[newSize];
if (newSize >= mSize)
{
for (int i = 0; i < newSize; ++i)
newArray[i] = mData[i];
}
else
for (int i = 0; i < mSize; ++i)
newArray[i] = mData[i];
delete[] mData;
mData = new T[newSize];
mSize = newSize;
for (int i = 0; i < newSize; ++i)
mData[i] = newArray[i];
delete[] newArray;
newArray = 0;
}
提前谢谢你。
【问题讨论】:
-
错误是什么?
-
你的代码看起来真的很多余,需要重构。
-
我是一个新手,正在尝试使用我目前知道的工具进行学习。我知道通过练习我会变得更好、更有效率。
标签: c++ arrays string templates