Написал программу,вылезает ошибка Е0330

Помогите пожалуйста...Ошибки при создании Лэндри и Геральда(конструкторы недоступны).Обьясните в чем проблема.

#include <iostream>
#include <string>

class i_people
{
protected:
    int m_monet = 0;
    std::string m_name;
    i_people(int monet, std::string name) :m_monet(monet), m_name(name) {}
    virtual const char* say() = 0;
    virtual const char* walk() = 0;
    virtual const int* wallet() = 0;
};

class slave : virtual i_people
{
    slave(int monet, std::string name) :i_people(monet,name) {}
    virtual const char* say()
    {
        std::cout << "Я Лэндри.Просите хозяин,сейчас сделаю" << std::endl;
    }
    
    virtual const char* walk()
    {
        std::cout << "Топ,топ,топ я иду на поле работать" << std::endl;
    }

    virtual const int* wallet()
    {
        std::cout << "У меня есть" << m_monet << "монет" << std::endl;
    }

    int gig()
    {
        std::cout << "Я работаю" << std::endl;
        return 5;
    }


};

class landlord : virtual i_people
{
    landlord(int monet, std::string name) :i_people(monet, name) {}
    virtual const char* say()
    {
        std::cout << "Я твой хозяин.Раб работать" << std::endl;
    }

    virtual const char* walk()
    {
        std::cout << "Топ,топ,топ я пошел в поместье" << std::endl;
    }

    virtual const int* wallet()
    {
        std::cout << "У меня есть" << m_monet << "монет" << std::endl;
    }
};

int main()
{
    setlocale(LC_ALL, "RUS");
    slave Landry(30,"Landry");
    landlord Gerald(250000,"Gerald");

}

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

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

Все члены класса, если не сказано иное - private по умолчанию.

Вы сделали таковыми конструкторы. Допишите примерно так

class slave : virtual i_people
{
public:
    slave(int monet, std::string name) :i_people(monet,name) {}

и наслаждайтесь новыми ошибками - объявленные как возвращающие const char* функции у вас ничего не возвращают...

→ Ссылка