我正在分配为动态字符串数组创建一个容器类。我知道使用 std::vector 会更容易/更好,但这不是重点。我在找到在构造函数中初始化数组的正确方法时遇到问题。下面的方式,编译器仍然警告我没有使用变量 lineArray。程序编译时会发出警告,即 lineArray 未使用,然后在运行时挂起。
MyBag::MyBag()
{
nLines = 0;
std::string lineArray = new std::string[0] ();
}
void MyBag::ResizeArray(int newLength)
{
std::string *newArray = new std::string[newLength];
//create new array with new length
for (int nIndex=0; nIndex < nLines; nIndex++)
{
newArray[nIndex] = lineArray[nIndex];
//copy the old array into the new array
}
delete[] lineArray; //delete the old array
lineArray = newArray; //point the old array to the new array
nLines = newLength; //set new array size
}
void MyBag::add(std::string line)
{
ResizeArray(nLines+1); //add one to the array size
lineArray[nLines] = line; //add the new line to the now extended array
nLines++;
}