Я пытаюсь освоить указатели и объекты C ++ с помощью небольшого проекта, реализующего простую проблему маршрутизации транспортных средств.Хотя мой код в настоящее время работает, я не могу избавиться от ощущения, что мой подход совершенно неверен.Что меня беспокоит, так это фрагменты кода, такие как:
std::map<const Route*, double>::iterator it = quantities.begin();
if ((*(*(it->first)).getDestination()).getDemand() > (*(*(it->first)).getDeparture()).getSupply())
Ситуация с адскими указателями в условии if является результатом того, что методы get возвращают указатели на уже созданные объекты.Вызываемые методы:
const Departure* Route::getDeparture() const {
return departure;
};
const Destination* Route::getDestination() const {
return destination;
};
и
int Destination::getDemand() const {
return demand;
};
int Departure::getSupply() const {
return supply;
};
Я совершенно не в курсе, я что-то упускаю или этот тип ситуации является чем-то нормальным?