Компилятор выдаёт много ошибок, не одна перегруженная функция не может преобразовать все типы аргументов, отсутсвуют экземпляры конструктора

Рейтинг: -2Ответов: 1Опубликовано: 22.02.2023
#include <iostream>
#include <string>
using namespace std;
class Area
{
public:
    string name;
    string mo;
    string ko;
    Area(string a)
    {
        name = a;
    }
    virtual char* getname()
    {
        return 0;
    }
    virtual  char* getplace()
    {
        return 0;
    }
};
class Savannah:public Area
{
public:
    Savannah(string a, string m, string k) :Area(a)
    {
        name = a;
        mo = m;
        ko = k;
    }
};
class Jungle :public Area
{
public:
    Jungle (string a, string m, string k) :Area(a)
    {
        name = a;
        mo = m;
        ko = k;
    }
};
int main()
{
    Savannah sav1("Лев");
    Savannah sav2("Лев");
    Savannah sav3("Лев");
    Jungle jung1("a");
    Jungle jung2("a");
    Jungle jung3("a");
    Area* places[] = {&sav1,&sav2,&sav3, &jung1, &jung2, &jung3 };
    return 0;
}

введите сюда описание изображения

Ответы

▲ 2

Для Savannah у вас единственный конструктор со сколькими строками?

Savannah(string a, string m, string k)

Считаем - a - один, m - два, k - три...

А сколько вы передаете?

Savannah sav1("Лев");
Savannah sav2("Лев");
Savannah sav3("Лев");

Для Jungle посчитайте сами...