У меня следующая проблема. Я использую библиотеку C igraph (http://igraph.sourceforge.net/) в программе, которую я должен сделать на c ++. Поэтому я нашел оболочку c ++ этой библиотеки C (http://code.google.com/p/igraphhpp/), которая предоставляет некоторый хороший интерфейс, который я хотел использовать, в классе под названием Graph .
В моей программе есть следующий класс:
class Agent
{
private:
double beta;
Graph * innerGraph;
public:
Agent(int N, double beta_) {
innerGraph = new Graph;
*innerGraph = Graph::full(N);
beta = beta_;
};
~Agent() {delete innerGraph;}
void MCStep();
};
Функция MCStep () должна выполнять следующие действия:
- сделать копию Графа, содержащегося в
*innerGraph
,
- сделать что-нибудь с этой копией, не изменяя оригинал,
- проверьте, удовлетворяет ли измененная копия некоторому условию, и, если да, обновите
*innerGraph
этим новым измененным графом.
Если бы я знал, что в библиотеке реализован безопасный конструктор копирования, я бы сделал это очевидным образом, но я не знаю. Как я могу это проверить?