Ошибка E0289 отсутствуют экземпляры конструктора соответствующие списку аргументов

3 ошибки E0289:отсутствуют экземпляры конструктора "artHistory::artHistory", соответствующие списку аргументов,строка62. Столкнулся с такой ошибкой , знаю вроде элементарная ,но я не смог решить

#include <iostream>
using namespace std;

class Book {
public:
virtual void printInfo()const = 0;
virtual float price() = 0;
Book() {}
~Book() {}
};

class sciFiction : public Book {
int gverdebis_raodenoba;
float tipografiuli_danaxarji;
public:
sciFiction(int a, float b);
sciFiction();
~sciFiction();
public:
virtual void printInfo()const override;
virtual float price()override;

};
sciFiction::sciFiction() {}
sciFiction::~sciFiction() {}
sciFiction::sciFiction(int a, float b) :gverdebis_raodenoba(a), tipografiuli_danaxarji(b) {}
float sciFiction::price()
{
return gverdebis_raodenoba * tipografiuli_danaxarji;
}
void sciFiction::printInfo()const
{
cout << " samecniero fantastikis wigni " << endl;
}

class artHistory : public Book {
private:
float tipografiuli_danaxarji;
float poligrafiuli_danaxarji;
float gverdebis_raodenoba;
public:
artHistory(float t, float p,float g);
artHistory();
~artHistory();
virtual float price()override;
virtual void printInfo()const override;
};
artHistory::artHistory(float t, float p,float g) :tipografiuli_danaxarji(t), 
poligrafiuli_danaxarji(p), gverdebis_raodenoba(g){}
artHistory::artHistory() {}
artHistory::~artHistory() {}
float artHistory::price()
{
return tipografiuli_danaxarji + poligrafiuli_danaxarji * gverdebis_raodenoba;
}
void artHistory::printInfo()const
{
cout << " xelovnebis istoriis wigni " << endl;
}

int main() {
sciFiction a(15.3, 30.2), b(20.2, 30.4);
artHistory c(10, 2.3), d(20, 3.2), e(13.6, 18.2);
a.printInfo();
cout << " sawvavi " << a.price() << endl;
d.printInfo();
cout << " sawvavi " << d.price() << endl;
Book* mas[] = { &a, &b,&c,&d,&e };
cout << "davbechdot informacia " << endl;
for (int i{}; i < 5; i++)
{
    mas[i]->printInfo();
    cout << "moixmars  shesabamis sawvavs -->" << mas[i]->price() << "  litrs " << endl;
}
}

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

Автор решения: CrazyElf

Конструктор - 3 аргумента:

artHistory(float t, float p,float g);

Создание экземпляров класса - по 2 аргумента:

artHistory c(10, 2.3), d(20, 3.2), e(13.6, 18.2);

Компилятор не может найти конструктор с двумя аргументами и ругается. Создавайте экземпляры класса, передавая им по три аргумента:

artHistory c(10, 2.3, 1.2), d(20, 3.2, 2.6), e(13.6, 18.2, 3.14);
→ Ссылка