方法不能初始化值c++

Method can not initialize value c++

首先我在 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 的 initialize 方法的参数中有参考

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;
.....
}

主要class我是这样做的

int main() {
    AdjacencyMatrix am;
    FordBellman fb;
    am.createFromFile("matrix.txt");
    fb.initialize(am);

}

如果我调用 fb.initialize(am) 控制台什么都不显示(应该显示 cout ) 你能告诉我我做错了什么吗?

回购 https://github.com/likoms/Graph/

当我尝试从 github 存储库中 运行 代码时,关于你的代码很遗憾,我遇到了分段错误。原因在文件 FordBellman.cpp 的第 42 行。您没有分配数组但使用了它。

你没有看到任何东西的原因是你的程序在打印之前就终止了。准确地说,它发生在 am.createFromFile("matrix.txt");

内部

尝试为 predecessor 编写内存分配,我认为您的代码将开始工作。

我有点困惑,您没有收到有关分段错误的消息。你用什么开发环境?