我创建一个对象时的C ++ Segfault

时间:2014-07-21 20:13:18

标签: c++ segmentation-fault

也许这是一个非常基本的问题,但我不知道这里的问题是什么。我在头文件中声明了一个类MMP,然后在.cpp文件中写出该类,然后在main.cpp中包含该头。我已经对所有内容进行了评论,以便该程序实际上什么都不做。

代码如下:

main.cpp中:

int main() {
    long k = 5;
    long lambda = 80;
    long seed = 0;

    // instantiate MMP
    MMP map = MMP(lambda, k, seed);

}

Multimap.h

class MMP {
private:
    /* stuff */

public:
    MMP(long lambda, long k, long seed); // instantiate the map
    ~MMP();
    /* methods */
};

Multimap.cpp:

MMP::MMP(long lambda, long k, long seed) {
    // stuff that is commented out
}

MMP的构造函数为空。给出的官方错误是Job 1, './ggh' terminated by signal SIGSEGV (Address boundary error)

完整代码可以是found here

1 个答案:

答案 0 :(得分:1)

您应该通过

创建它
MMP map(lambda,k,seed);

否则,它会尝试创建一个临时的MMP并将其复制到你的地图"变量