Ссылка на неразрешенный внешний символ C++

Пытаюсь создать конструктор класса в другом файле. Выводит следующие ошибки:

  • Ошибка LNK1120 неразрешенных внешних элементов
  • Ошибка LNK2019 ссылка на неразрешенный внешний символ "public: __cdecl TLA::TLA(void)" (??0TLA@@QEAA@XZ) в функции "public: __cdecl TAircraft::TAircraft(void)" (??0TAircraft@@QEAA@XZ).

Поискал в интернете, говорят не может найти реализацию конструктора. Как это пофиксить?

Файл h:

#pragma once
#include <cmath>
#include <iostream>

class TAObject {
public:

    float x, y;
    bool f;
    TAObject();
    TAObject(float x, float y);
    ~TAObject();
};

class TLA : public TAObject {
public:
    float xc, yc, R, phi, V;
    bool landing;
    TLA();
    TLA(float x, float y);
    float impPhi(float b, float x, float y, float xc, float yc);
    float getB(float x, float y, float xc, float yc);
    virtual void move(float t, int a);
};

class TAircraft : public TLA {
public:
    TAircraft();
    virtual void move(float t, int a, float dt);
};

class THelicopter : public TLA {
public:
    THelicopter();
    virtual void move(float t, int a, float dt);
};

class TAirport : public TAObject {
public:
    float dt;
    float l;
    TLA** LA;
    int n = 5;
    TAirport();
    void Do(float t0, float tk);
};

Файл cpp:

#include "add.h"


TAObject::TAObject() {
    std::cout << "Object created" << '\n';
}

TAObject::~TAObject() {
    std::cout << "DESTRUCTION";
}

void TLA::move(float t, int a) {
    switch (a) {
    case 0: false; break;
    case 1: true; break;
    default:
        break;
    }
}

TAircraft::TAircraft(): TLA() {
    std::cout << "Yo!";
}

THelicopter::THelicopter() {
    std::cout << "Helic";
}

void TAircraft::move(float t, int a, float dt) {
    float w;
    w = -(this->V / this->R);
    x = ((-(xc + R * cos(phi + w * t)) * (a - 1)) + a * (x + V * dt));
    y = (-(yc + R * sin(phi + w * t)) * (a - 1) + y * a);
    std::cout << "plane";
}

void THelicopter::move(float t, int a, float dt) {
    x = x - a * V * std::cos(phi) * dt;
    y = y - a * V * std::sin(phi) * dt;
    std::cout << "helicopter";
}

float TLA::impPhi(float b, float x, float y, float xc, float yc) {
    return (b * 3.14 + atan((y - yc) / (x - xc)));
}

float TLA::getB(float x, float y, float xc, float yc) {
    if (x < xc and x < yc)
        return -1;
    if (x < xc and x > yc)
        return 1;
    if (x > xc)
        return 0;
}

TLA::TLA(float x, float y) {
    std::cout << "TLA created" << '\n';
    std::cout << "Import xc and yc and V:" << '\n';
    std::cin >> xc >> yc >> V;

}

TAirport::TAirport() {
    std::cin >> dt >> x >> y;
    LA = new TLA * [n];
    for (int i = 0; i < n; i++) {
        int a = rand() % 2;
        switch (a)
        {
        case 0: LA[i] = new THelicopter; break;
        case 1: LA[i] = new TAircraft; break;
        default:
            break;
        }
        LA[i] = new TLA(x, y);

        std::cout << "success" << '\n';
    }
}


Ответы (0 шт):