Элементы sq[]
не уничтожаются.Вместо этого вы вызываете оператор присваивания каждого элемента, чтобы присвоить ему новое значение Square(k, j)
, и временный объект уничтожается в конце присваивания.
Если вы хотите избежатьизбыточная конструкция по умолчанию плюс присвоение, вы можете / должны использовать вектор:
std::vector<Square> sq;
sq.reserve(81);
for (...) for (...) sq.push_back(Square(k,j));
Если вы хотите избежать избыточного временного кода, используйте C ++ 11 и скажите:
for (...) for (...) sq.emplace_back(k, j);