Как унаследовать свойства и методы классом от двух других классов? У меня есть два класса : Hero и Talent. У класса Hero есть свойства : name, health, force; методы : getName, getHealth, getForce. У класса Talent есть свойства : name, duration, type; методы : getName, getDuration, getType. Как создать класс производный от этих двух классов, чтобы унаследовать их свойства и методы?
Есть код (упрощённый), написанный на c++: class Hero {
protected :
std::string name;
double health, force, dexterity, intelligence = 1;
public :
std::string getName(void) { return(name); }
double getHealth(void) { return(health); }
double getForce(void) { return(force); }
double getDexterity(void) { return(dexterity); }
double getIntelligence(void) { return(intelligence); }
};
class Talent {
protected :
std::string name;
double duration = 0;
bool type;
public :
std::string getName(void) { return(name); }
double getDuration(void) { return(duration); }
double getType(void) { return(type); }
};

21 Авг 2019 в 07:09
240 +1
0
Ответы
1

Для создания класса, который наследует свойства и методы от двух классов Hero и Talent, вам нужно использовать множественное наследование. Ниже приведен пример кода на C++, который показывает, как создать такой класс:

#include <iostream>
#include <string>
class Hero {
protected:
std::string name;
double health, force;
public:
std::string getName(void) { return name; }
double getHealth(void) { return health; }
double getForce(void) { return force; }
};
class Talent {
protected:
std::string name;
double duration;
bool type;
public:
std::string getName(void) { return name; }
double getDuration(void) { return duration; }
bool getType(void) { return type; }
};
class SuperHero : public Hero, public Talent {
protected:
double dexterity, intelligence;
public:
double getDexterity(void) { return dexterity; }
double getIntelligence(void) { return intelligence; }
};
int main() {
SuperHero superman;
superman.name = "Superman";
superman.health = 100;
superman.force = 50;
superman.duration = 10;
superman.type = true;
superman.dexterity = 75;
superman.intelligence = 80;
std::cout << "Superman properties:" << std::endl;
std::cout << "Name: " << superman.getName() << std::endl;
std::cout << "Health: " << superman.getHealth() << std::endl;
std::cout << "Force: " << superman.getForce() << std::endl;
std::cout << "Duration: " << superman.getDuration() << std::endl;
std::cout << "Type: " << superman.getType() << std::endl;
std::cout << "Dexterity: " << superman.getDexterity() << std::endl;
std::cout << "Intelligence: " << superman.getIntelligence() << std::endl;
return 0;
}

В данном примере класс SuperHero наследует свойства и методы от классов Hero и Talent и добавляет свои собственные свойства dexterity и intelligence. В функции main() вы можете увидеть пример использования этого класса.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 718 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир