почитайте про implicit и explicit sharing и этот вопрос у вас отпадет сам собой.
если в кратце - при копировании списка на самом деле копируется указатель на некие данные. и пока вы не будете ничего в нем менять (а только читать например), то ваши списки (оригинал и копия) будут ссылаться по факту на одни и теже данные.
Как только вы добавите/измените что то в одном из списков, произойдет copy-on-write - т.е. эти два списка будут ссылаться уже на разные данные. Т.е. я не вижу острой необходимости явного копирования. Все это за вас сделает в фоне Qt.
Вопрос в том, как синтаксически правильно прописать копирование списка, чтобы это было именно копирование.
То есть, если я пропишу:
AttachTableData::AttachTableData(AttachTableData &obj)
{
attachTable=new QList< Attach >();
attachTable=obj->attachTable;
}
То это же не будет являться копированием объекта, тут просто присвоится значение указателя, и не до никаких implicit и explicit sharing дело не дойдет.