Сначала я инициализирую значение в конструкторе в Ford Bellman claas
FordBellman::FordBellman() {
this->vertexCount=0;
this->vertexFirst=0;
this->edgeCount=0;
this->wage=0;
this->matrix=0;
this->distance=0;
this->predecessor=0;
}
затем у меня есть ссылка в аргументе метода инициализации в FordBellman
void FordBellman::initialize(const AdjacencyMatrix &am)
{
this->vertexCount=am.getVertexCount();
this->vertexFirst=am.getVertexFirst();
this->edgeCount=am.getEdgeCount();
this->wage=am.getWage();
this->matrix=am.getMatrix();
cout << vertexCount;
cout << vertexFirst;
.....
}
в основном классе я делаю это таким образом
int main() {
AdjacencyMatrix am;
FordBellman fb;
am.createFromFile("matrix.txt");
fb.initialize(am);
}
И если я вызываю fb.initialize (am), консоль ничего не показывает (должна показывать cout)
Можете ли вы сказать мне, что я делаю не так?
Сделки рЕПО https://github.com/likoms/Graph/
Когда я попытался запустить код из репозитория GitHub о вас, печально, я получил ошибку сегментации. Причина была в строке 42 файла FordBellman.cpp. Там вы не выделяли массив, а использовали его.
Причина, по которой вы ничего не видели, заключается в том, что ваша программа завершает работу, прежде чем что-то печатает. Чтобы быть точным, это происходит внутри am.createFromFile("matrix.txt");
Попробуйте написать распределение памяти для predecessor
и я думаю, что ваш код начнет работать.
Я немного сбит с толку, что вы не получите сообщение о сбое сегментации. Какую среду разработки вы используете?