Написал программу,вылезает ошибка Е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* функции у вас ничего не возвращают...