Я получил шаблонный класс, в котором у меня есть функция, которая должна читать содержимое текстового файла и создавать объект, который помещается в собственный реализованный векторный класс. Я могу скомпилировать код, но получаю ошибку, связанную с очень большим числом 0-го элемента в векторе. (Это ошибка, генерируемая скриптом, который предоставляется для обработки ошибок и не является ошибкой компилятора c ++.)
Код выглядит следующим образом:
bool FileReading(const std::string &nameOfFile)
{
std::ifstream readFileObj(nameOfFile);
if (readFileObj.is_open())
{
T input;
readFileObj >> input;
PushBack(input);
readFileObj.close();
return true;
}
return false;
}
Переменная T input - это переменная шаблона, а функция PushBack - это функция, которая помещает объект в вектор. (Не функция std push_back)
Я что-то упускаю из виду? Что-то элементарное относительно того, как работают потоки?
Вот моя функция PushBack:
void PushBack(const T &element)
{
if (currentElementCount == maximumCapacity)
{
T *tempArray = new T[maximumCapacity * 2];
for (unsigned int i = 0; i < maximumCapacity; ++i)
tempArray[i] = normalArray[i];
delete[] normalArray;
maximumCapacity *= 2;
normalArray = tempArray;
}
normalArray[currentElementCount] = element;
currentElementCount += 1;
}