i можно считать переменной цикла, принимающей на каждой итерации новое значение итератора. Обратиться к ней после построения списка нельзя. 
  
  void Printer::addM(Moved obj) 
{
  Moved* tmp = new Moved[mSize];
  for (int i = 0; i < mSize; i++) 
  {
      tmp[i] = objs[i];
  }
  objs = new Moved[++mSize];
  for (int i = 0; i < mSize - 1; i++)
  {
    objs[i] = tmp[i];
  }
  objs[mSize - 1] = obj; 
  Car mytmp; // для теста
  cout << mytmp.getType() << endl; // для теста
  cout << objs[mSize-1].getType() << endl; 
  Sleep(100);
} 
  
  bool operator >(const triple& n) const
{
    return c > n.c;
}using triple = std::tuple<int, int, int>;       
  
  this — это указатель на текущий объект. *this — это ссылка на текущий объект. Пример:class A {
public:
  int x;
  A(const A& other) = default;
  A& operator=(const A& other) {
    x = other.x;
    return *this;
  }
};
void test() {
  A a(1);  // a.x == 1
  A b(2);  // b.x == 2
  A c(3);  // c.x == 3
  a = b = c;
  // a.x == 3
  // b.x == 3
  // c.x == 3
}a = (b = c);. Итак, вначале b = c. Вызывается b.operator=(c). Там мы вначале присваиваем c.x (3) в b.x, затем (и это здесь самое главное!) возвращаем ссылку на b. Далее в a = (результат) объекту a присваивается та самая возвращённая ссылка на b, благодаря чего в a.x тоже оказывается 3.      4.1. Дублирование вопроса, который уже размещался на страницах Сервиса. В том числе и в случае, если вопрос был удалён модератором, или на вопрос не был дан ответ (т.е. категорически запрещается дублирование вопроса с целью повторного привлечения к нему внимания).
 
  
  std::vector<std::unique_ptr<object>> world;
auto terr = std::make_unique<Terrain>();
world.push_back(std::move(terr));world.push_back(std::make_unique<Terrain>());object& operator=(object&&) = delete;
virtual ~object() = default;