Когда вы передаете параметр, он копируется, что вызывает конструктор копирования.Как правило, рекомендуется перегрузить оператор равенства одновременно.
Либо так, либо используйте boost :: shared_ptr, либо какой-либо другой существующий класс.По какой-то причине вы этим не пользуетесь?