私は質問を完全に再定式化しようとしました。状況は次のとおりです。
class Departure {
private :
unsigned int supply;
public :
Departure(int);
~Departure();
int getSupply() {
return supply;
};
};
class Route {
private :
Departure* departure;
public :
Departure& getDeparture() {
return *departure;
};
};
class Plan {
private :
std::map<Route*, double> quantities;
public :
void addRoute(Route& rt) {
quantities.insert(std::pair<Route*,double>(&rt,0));
};
void createSolution() {
std::map<Route*, double>::iterator it;
for(it = quantities.begin(); it != quantities.end(); ++it) {
it->second = it->first->getDeparture().getSupply();
};
};
ルートが追加された後、確認しましたが、問題なく動作します。これまでの試行錯誤から呼び出しにあるセグメンテーション違反が発生しましたit->first->getDeparture().getSupply()
。理由はありますか?