我得到一个未定义的引用错误到不存在的东西

时间:2011-05-26 19:26:44

标签: c++ g++ compiler-errors undefined-reference

当我尝试编译此代码时

Analysis2::Analysis2() //line 13
{
    Seconds_v = 0;    //Seconds_v and Seconds_t are both of type int 
    Seconds_t = 0;    //and declared in header
}

我收到此错误

analysis2.cpp:13:未定义引用`FileParameters :: FileParameters()'

为什么它给我这个未定义的引用? FileParameters是Analysis2中包含的类,如果有帮助,则在Analysis2头文件中定义了一个FileParameters对象。

2 个答案:

答案 0 :(得分:2)

当你有构造函数时,如果你没有在初始化列表中显式构造它,那么每个成员变量都会自动默认构造。上面的代码会自动扩展为:

Analysis2::Analysis2() : mFileParams(), Seconds_v(), Seconds_t() // line 13
{
    Seconds_v = 0;    //Seconds_v and Seconds_t are both of type int 
    Seconds_t = 0;    //and declared in header
}

如果你还没有实现FileParameters的默认构造函数,或者甚至没有可访问的构造函数,那就是你得到的错误。

答案 1 :(得分:0)

可能使用FileParameters实现了Analysis2类(血腥可怕的名称,BTW)。您需要链接两个类的对象 - 仅仅包括标题是不够的。但可以肯定的是,我们需要查看更多代码。