0

当我尝试编译这段代码时

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

4

2 回答 2

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,或者甚至没有可访问的构造函数,那就是您得到的错误。

于 2011-05-26T19:29:00.897 回答
0

Analysis2 类(该死的名字,顺便说一句)可能是使用 FileParameters 实现的。您需要链接两个类的对象 - 仅包含标题是不够的。但可以肯定的是,我们需要查看更多代码。

于 2011-05-26T19:31:00.883 回答