Ошибка Undefined reference в кьюте
Ошибка
Подскажите, пожалуйста, в чем ошибка?

mainbuildcompany.h
#ifndef MAINBUILDCOMPANY_H
#define MAINBUILDCOMPANY_H
#include<QString>
class MainBuildCompany
{
protected:
QString Name_Company;
QString Coasts;
QString Name;
QString Surname;
QString MiddleName;
public:
MainBuildCompany();
MainBuildCompany(QString name_company, QString coasts, QString name, QString surname, QString middlename);
void ChangeNameCompany(QString name_company);
void ChangeCoast(QString coast);
void ChangeName(QString name);
void ChangeSurname (QString surname);
void ChangeMiddleName (QString middlename);
virtual void ChangeAreaKM(QString areakm)=0;
virtual void ChangeTimeDays(QString timeday)=0;
QString GetNameCompany();
QString GetCoasts();
QString GetName();
QString GetSurname();
QString GetMiddleName();
virtual QString GetAreaKM()=0;
virtual QString GetTimeDays()=0;
virtual ~MainBuildCompany() ;
};
class BuildCompany:public MainBuildCompany
{
private:
QString BuildAreaKm;
QString BuildTimeDays;
public:
BuildCompany();
BuildCompany(QString name_company, QString coasts, QString name, QString surname, QString middle_name,QString buildareakm, QString buildtimedays);
void ChangeAreaKM(QString areakm);
void ChangeTimeDays(QString timeday);
QString GetAreaKM();
QString GetTimeDays();
~BuildCompany();
};
class DestroyCompany:public MainBuildCompany
{
private:
QString DestroyAreaKm;
QString DestroyTimeDays;
public:
DestroyCompany();
DestroyCompany(QString name_company, QString coasts, QString name, QString surname, QString middle_name,QString destroyareakm, QString destroytimedays);
void ChangeAreaKM(QString areakm);
void ChangeTimeDays(QString timeday);
QString GetAreaKM();
QString GetTimeDays();
~DestroyCompany();
};
class ChangeCompany:public MainBuildCompany
{
private:
QString ChangeAreaKm;
QString ChangeTimeDays;
public:
ChangeCompany();
ChangeCompany(QString name_company, QString coasts, QString name, QString surname, QString middle_name,QString changeareakm, QString changetimedays);
void ChangeAreaKM(QString areakm);
void ChangeTimeDay(QString timedays);
QString GetAreaKM();
QString GetTimeDays();
~ChangeCompany();
};
#endif // MAINBUILDCOMPANY_H
mainbuildcompany.cpp
#include "mainbuildcompany.h"
//Родительский класс
MainBuildCompany::MainBuildCompany(): Name_Company("Annoying"), Coasts("25000"), Name("Alexey"), Surname("Skoblyakov"),MiddleName("Sergeevich") {};
MainBuildCompany::MainBuildCompany(QString name_company, QString coasts, QString name, QString surname, QString middlename):
Name_Company(name_company),Coasts(coasts), Name(name), Surname(surname), MiddleName(middlename) {}
void MainBuildCompany::ChangeNameCompany(QString name_company){Name_Company=name_company;}
void MainBuildCompany::ChangeCoast(QString coast) {Coasts = coast; }
void MainBuildCompany::ChangeName(QString name) {Name=name; }
void MainBuildCompany::ChangeMiddleName(QString middlename) {MiddleName=middlename; }
void MainBuildCompany::ChangeSurname(QString surname) {Surname=surname; }
QString MainBuildCompany::GetNameCompany() {return Name_Company; }
QString MainBuildCompany::GetCoasts() {return Coasts; }
QString MainBuildCompany::GetName() { return Name; }
QString MainBuildCompany::GetMiddleName(){ return MiddleName; }
QString MainBuildCompany::GetSurname() { return Surname; }
//Порожденный класс для строения
BuildCompany::BuildCompany():BuildAreaKm("20"),BuildTimeDays("15") {}
BuildCompany::BuildCompany(QString name_company, QString coasts, QString name, QString surname, QString middle_name,QString buildareakm, QString buildtimedays):
MainBuildCompany(name_company,coasts,name,surname,middle_name), BuildAreaKm(buildareakm),BuildTimeDays(buildtimedays) {}
void BuildCompany::ChangeAreaKM(QString areakm) { BuildAreaKm=areakm; }
void BuildCompany::ChangeTimeDays(QString timeday) { BuildTimeDays=timeday; }
QString BuildCompany::GetAreaKM() {return BuildAreaKm; }
QString BuildCompany::GetTimeDays() { return BuildTimeDays; }
//Порожденный класс для уничтожения
DestroyCompany::DestroyCompany():DestroyAreaKm("12"),DestroyTimeDays("10") {}
DestroyCompany::DestroyCompany(QString name_company, QString coasts, QString name, QString surname, QString middle_name,QString destroyareakm, QString destroytimedays):
MainBuildCompany(name_company,coasts,name,surname,middle_name),DestroyAreaKm(destroyareakm),DestroyTimeDays(destroytimedays) {}
void DestroyCompany::ChangeAreaKM(QString areakm) { DestroyAreaKm=areakm; }
void DestroyCompany::ChangeTimeDays(QString timeday) { DestroyTimeDays=timeday; }
QString DestroyCompany::GetAreaKM() { return DestroyAreaKm; }
QString DestroyCompany::GetTimeDays() { return DestroyTimeDays; }
//Порожденный класс для изменения
ChangeCompany::ChangeCompany():ChangeAreaKm("12"),ChangeTimeDays("11") {}
ChangeCompany::ChangeCompany(QString name_company, QString coasts, QString name, QString surname, QString middle_name,QString changeareakm, QString changetimedays):
MainBuildCompany(name_company,coasts,name,surname,middle_name), ChangeAreaKm(changeareakm), ChangeTimeDays(changetimedays) {}
void ChangeCompany::ChangeAreaKM(QString areakm) { ChangeAreaKm=areakm; }
void ChangeCompany::ChangeTimeDay(QString timeday) { ChangeTimeDays=timeday; }
QString ChangeCompany::GetAreaKM() {return ChangeAreaKm; }
QString ChangeCompany::GetTimeDays() { return ChangeTimeDays; }