问题描述
||
当我尝试编译这段代码时
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实现的。您需要链接两个类的对象-仅包含标头是不够的。但是可以肯定的是,我们需要查看更多代码。