Реализация виртуальной функции. Неразрешенных внешних элементов: 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)"