Я получаю неопределенную ошибку ссылки на то, чего там нет - PullRequest
0 голосов
/ 26 мая 2011

Когда я пытаюсь скомпилировать этот код

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 ]

2 голосов
/ 26 мая 2011

Если у вас есть конструктор, каждая переменная-член автоматически создается по умолчанию, если вы явно не создаете ее в списке инициализатора. Ваш код выше автоматически расширяется до:

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 или даже не имеете доступного, это ошибка, которую вы получите.

0 голосов
/ 26 мая 2011

Класс Analysis2 (чертовски ужасное имя, кстати), вероятно, реализован с использованием FileParameters. Вам необходимо связать объекты для обоих классов - просто включить заголовок недостаточно. Но чтобы быть уверенным, нам нужно увидеть больше кода.

...