Как унаследовать свойства и методы классом от двух других классов? У меня есть два класса : 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
269 +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 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир