Объект, композиция объектов, конструируется так, что каждый следующий данное-член зависит от предыдущего (используется при инициализации). При вызове деструктора в деструкторах данных-членов происходит освобождение ресурсов, которыми они владеют. Это происходит в порядке обратном порядку инициализации. Что корректно. Но если я вызываю оператор присваивания (автогенерированный), то он разрушает данные-члены в прямом порядке, что некорректно. Как этого избежать?