当我尝试编译此代码时
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对象。
答案 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)。您需要链接两个类的对象 - 仅仅包括标题是不够的。但可以肯定的是,我们需要查看更多代码。