Я занимаюсь разработкой проекта на C ++ под Ubuntu 11.10 с использованием последней версии NetBeans. Я буду публиковать только минимальные части кода, относящиеся к проблеме. Допустим, у меня есть следующий код для проблемы с графиком:
typedef map<Node*, double, DereferenceCompare> Transitions;
class Node {
int _nodeNumber;
Transitions _transitions;
}
Каждый объект Node содержит карту указателей на другие объекты Node. Теперь у нас есть:
typedef set<Node*, DereferenceCompare> Nodes;
class Network {
Nodes _network;
}
Проблема: я не могу написать конструктор копирования для класса Network. Я пытаюсь достичь следующего:
Network n1;
Network n2(n1);
//Have both n1 and n2 identical in structure but distinct in memory (deep copy).
Прав ли я в следующем предположении: если я напишу конструктор копирования для класса Node, ему также потребуется скопировать контейнер Transitions. Контейнер Transitions в этот момент будет содержать указатели на старые узлы, поскольку новые еще не существуют.
Это мой первый пост здесь. Я надеюсь, что предоставил четкую и достаточную информацию. Я могу уточнить, был ли я недостаточно связан со своей проблемой. Любая помощь будет принята с благодарностью.