Реализация виртуальной функции. Неразрешенных внешних элементов: 1

Идея в том, чтобы под каждую валюту создать свой класс и через них реализовать интерфейс взаимодействия между валютами(конвертация из одной валюты в другую, сложение 2х разных валют) с помощью класса Convert

main.cpp

#include "Euro.h"
#include <iostream>
using namespace std;

class Convert {
public:
double in = 10.1;
double Conversation(Currency& currency) { return currency.toOut(in); }
void Out() {
    Convert convert;
    cout << convert.Conversation(euro);
}
private:
    Euro euro;
};
int main()
{
    Convert a;
    a.Out();
}

Реализация хедера: "Euro.h"

#pragma once
class Currency {
public:
    virtual double toOut(double amountOfMoneyIn) = 0;
};
class Euro : public Currency {
public:
double toOut(double amountOfMoneyIn) override; 
}; 

Реализация функции хедера через Euro.cpp файл

#include "Euro.h"
double toOut(double amount) { return amount * 2.141414; }

Причём ещё забавно, что если реализацию оставить без Euro.cpр в Euro.h, то всё работает корректно А так пишет 1)" LNK1120 неразрешенных внешних элементов: 1" и 2)Неразрешенный внешний символ ""public: virtual double __thiscall Euro::toOut(double)" (?toOut@Euro@@UAENN@Z)"


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