我收到一个未定义的引用错误,指向不存在的东西

I'm getting an undefined reference error to something that isn't there

本文关键字:错误 引用 不存在 未定义 一个      更新时间:2023-10-16

当我尝试编译此代码时

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对象。

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

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的默认构造函数,或者甚至没有可访问的构造函数,那么就会出现错误。

Analysis2类(糟糕透顶的名称,BTW)可能是使用FileParameters实现的。您需要链接这两个类的对象——仅仅包括头是不够的。但可以肯定的是,我们需要看到更多的代码。