читать объекты из списка объектов - PullRequest
0 голосов
/ 12 октября 2018

Я сохраняю объекты в списке после их создания, но получаю ошибку сегментации, когда пытаюсь прочитать их из этого списка.Когда я печатаю указатели, он показывает мне тот же адрес, что и адрес при создании, поэтому я не знаю, почему я получаю ошибку Seg.Fault.

Может быть, у вас есть идея, в чем моя ошибка.Ty:

main:

int main()
{
  Computer computer("My Computer",1000);
  computer.addHardware("Monitor",250);
  computer.removeHardware("Monitor",250);
  computer.addHardware("Monitor",150);
  return 0;
}

Computer.c:

#include "Computer.h"
Computer::Computer(std::string name, int budget) : name_(name), budget_(budget),momentary_cost_(0){}

Computer::~Computer(){}

void Computer::addHardware(const char* name, int cost)
{
  Hardware newHardware =  Hardware(name,cost);
  if(momentary_cost_ + cost < budget_)
  {
    HardwareList.push_back(&newHardware);
    momentary_cost_ += cost;
  }
  else
  {
    delete(&newHardware);
  }

}


void Computer::removeHardware(const char* name, int cost)
{
  for (auto it = HardwareList.begin(); it != HardwareList.end(); ++it)
  {

    if (std::string(name) == std::string((*it)->getName()) || cost == (*it)->getCost())
    {
      HardwareList.erase(it);
    //  HardwareList = (Hardware*)realloc(HardwareList, sizeof(HardwareList)*(HardwareList.size()-1));
      delete(&it);
    }
  }
}
...