C/C++
Лёгкое задание с классами C++
Описать Утконоса Перри и Огурчика Рика с помощью классов. Подумай, какие поля и методы могут помочь тебе в этой задаче (например, Перри может выяснять, преступник заданный человек или нет, а Рик может считать, сколько крыс он победил) и как с помощью механизма наследования, ты можешь упростить её себе. Реализуй минимум 2 класса и используй наследование (минимум для одного класса). Объект каждого класса как минимум должен содержать информацию об имени персонажа и мультике откуда он. Также создай 1-2 метода для каждого класса. Можешь использовать переопределение, виртуальные и статические методы - всё на твой вкус. Не забудь протестировать работу классов в функции main().
Не забудь протестировать работу классов в функции main().ну тестируй...
#include
#include
// Базовый класс "Персонаж"
class Character {
public:
Character(const std::string& name, const std::string& cartoon)
: name(name), cartoon(cartoon) {}
// Метод для получения имени персонажа
std::string getName() const {
return name;
}
// Метод для получения мультика, откуда персонаж
std::string getCartoon() const {
return cartoon;
}
// Виртуальный метод, который может быть переопределен в производных классах
virtual void introduce() const {
std::cout
Василий Евдокимов
Работает!
``
#include <iostream>
#include <string>
// Базовый класс для персонажей мультфильма
class Character {
public:
Character(const std::string& name, const std::string& cartoon)
: name(name), cartoon(cartoon) {}
// Вывод информации о персонаже
void displayInfo() {
std::cout << "Имя: " << name << std::endl;
std::cout << "Мультфильм: " << cartoon << std::endl;
}
// Виртуальный м��тод для выполнения действия персонажа
virtual void performAction() {
std::cout << "Персонаж выполняет действие." << std::endl;
}
protected:
std::string name;
std::string cartoon;
};
// Класс для Утконоса Перри, наследующийся от базового класса Character
class PerryThePlatypus : public Character {
public:
PerryThePlatypus(const std::string& name)
: Character(name, "Финес и Ферб") {}
// Переопределение метода performAction для Утконоса Перри
void performAction() override {
std::cout << "Утконос Перри раскрывает свою личность и борется с злодеями!" << std::endl;
}
// Метод для проверки, является ли персонаж шпионом
bool isSecretAgent() {
return true;
}
};
// Класс для Огурчика Рика, наследующийся от базового класса Character
class RickCucumber : public Character {
public:
RickCucumber(const std::string& name)
: Character(name, "Рик и Морти") {}
// Переопределение метода performAction для Огурчика Рика
void performAction() override {
std::cout << "Огурчик Рик исследует мультивселенную и решает научные задачи!" << std::endl;
}
// Метод для подсчета количества побед над крысами
int countRatVictories() {
return 42; // Просто для примера
}
};
int main() {
PerryThePlatypus perry("Перри");
RickCucumber rick("Рик");
// Вывод информации о персонажах и выполнение их действий
std::cout << "Информация о персонаже Утконос Перри:" << std::endl;
perry.displayInfo();
perry.performAction();
std::cout << "Это шпион? " << (perry.isSecretAgent() ? "Да" : "Нет") << std::endl;
std::cout << std::endl;
std::cout << "Информация о персонаже Огурчик Рик:" << std::endl;
rick.displayInfo();
rick.performAction();
std::cout << "Количество побед над крысами: " << rick.countRatVictories() << std::endl;
return 0;
}
``
#include <iostream>
#include <string>
// Базовый класс для персонажей мультфильма
class Character {
public:
Character(const std::string& name, const std::string& cartoon)
: name(name), cartoon(cartoon) {}
// Вывод информации о персонаже
void displayInfo() {
std::cout << "Имя: " << name << std::endl;
std::cout << "Мультфильм: " << cartoon << std::endl;
}
// Виртуальный м��тод для выполнения действия персонажа
virtual void performAction() {
std::cout << "Персонаж выполняет действие." << std::endl;
}
protected:
std::string name;
std::string cartoon;
};
// Класс для Утконоса Перри, наследующийся от базового класса Character
class PerryThePlatypus : public Character {
public:
PerryThePlatypus(const std::string& name)
: Character(name, "Финес и Ферб") {}
// Переопределение метода performAction для Утконоса Перри
void performAction() override {
std::cout << "Утконос Перри раскрывает свою личность и борется с злодеями!" << std::endl;
}
// Метод для проверки, является ли персонаж шпионом
bool isSecretAgent() {
return true;
}
};
// Класс для Огурчика Рика, наследующийся от базового класса Character
class RickCucumber : public Character {
public:
RickCucumber(const std::string& name)
: Character(name, "Рик и Морти") {}
// Переопределение метода performAction для Огурчика Рика
void performAction() override {
std::cout << "Огурчик Рик исследует мультивселенную и решает научные задачи!" << std::endl;
}
// Метод для подсчета количества побед над крысами
int countRatVictories() {
return 42; // Просто для примера
}
};
int main() {
PerryThePlatypus perry("Перри");
RickCucumber rick("Рик");
// Вывод информации о персонажах и выполнение их действий
std::cout << "Информация о персонаже Утконос Перри:" << std::endl;
perry.displayInfo();
perry.performAction();
std::cout << "Это шпион? " << (perry.isSecretAgent() ? "Да" : "Нет") << std::endl;
std::cout << std::endl;
std::cout << "Информация о персонаже Огурчик Рик:" << std::endl;
rick.displayInfo();
rick.performAction();
std::cout << "Количество побед над крысами: " << rick.countRatVictories() << std::endl;
return 0;
}
``
#include <iostream>
#include <string>
// Базовый класс "Персонаж"
class Character {
public:
Character(const std::string& name, const std::string& cartoon)
: name(name), cartoon(cartoon) {}
// Метод для получения имени персонажа
std::string getName() const {
return name;
}
// Метод для получения мультика, откуда персонаж
std::string getCartoon() const {
return cartoon;
}
// Виртуальный метод, который может быть переопределен в производных классах
virtual void introduce() const {
std::cout << "Я - " << name << " из мультика " << cartoon << std::endl;
}
private:
std::string name;
std::string cartoon;
};
// Производный класс "Персонаж Перри"
class Perry : public Character {
public:
Perry(const std::string& name)
: Character(name, "Агент Перри") {}
// Переопределение метода introduce
void introduce() const override {
std::cout << "Я - " << getName() << ", известный как Агент Перри!" << std::endl;
}
// Метод для проверки, является ли персонаж преступником
bool isCriminal(const std::string& person) const {
return person == "Доктор Зло";
}
};
// Производный класс "Персонаж Рик"
class Rick : public Character {
public:
Rick(const std::string& name)
: Character(name, "Рик и Морти") {}
// Переопределение метода introduce
void introduce() const override {
std::cout << "Я - " << getName() << ", приключенец из мультика Рик и Морти!" << std::endl;
}
// Метод для подсчета побед над крысами
int countRatVictories(int ratCount) {
return ratCount * 10; // Просто для примера
}
};
int main() {
Perry perry("Перри"); // Создаем объект Перри
Rick rick("Рик"); // Создаем объект Рик
// Вызываем метод introduce для каждого персонажа
perry.introduce();
rick.introduce();
// Проверяем, является ли Доктор Зло преступником
if (perry.isCriminal("Доктор Зло")) {
std::cout << "Доктор Зло - преступник!" << std::endl;
} else {
std::cout << "Доктор Зло - не преступник!" << std::endl;
}
// Считаем победы над крысами
int ratCount = 5; // Просто для примера
int ratVictories = rick.countRatVictories(ratCount);
std::cout << "Рик победил " << ratVictories << " крыс!" << std::endl;
return 0;
}
#include <string>
// Базовый класс "Персонаж"
class Character {
public:
Character(const std::string& name, const std::string& cartoon)
: name(name), cartoon(cartoon) {}
// Метод для получения имени персонажа
std::string getName() const {
return name;
}
// Метод для получения мультика, откуда персонаж
std::string getCartoon() const {
return cartoon;
}
// Виртуальный метод, который может быть переопределен в производных классах
virtual void introduce() const {
std::cout << "Я - " << name << " из мультика " << cartoon << std::endl;
}
private:
std::string name;
std::string cartoon;
};
// Производный класс "Персонаж Перри"
class Perry : public Character {
public:
Perry(const std::string& name)
: Character(name, "Агент Перри") {}
// Переопределение метода introduce
void introduce() const override {
std::cout << "Я - " << getName() << ", известный как Агент Перри!" << std::endl;
}
// Метод для проверки, является ли персонаж преступником
bool isCriminal(const std::string& person) const {
return person == "Доктор Зло";
}
};
// Производный класс "Персонаж Рик"
class Rick : public Character {
public:
Rick(const std::string& name)
: Character(name, "Рик и Морти") {}
// Переопределение метода introduce
void introduce() const override {
std::cout << "Я - " << getName() << ", приключенец из мультика Рик и Морти!" << std::endl;
}
// Метод для подсчета побед над крысами
int countRatVictories(int ratCount) {
return ratCount * 10; // Просто для примера
}
};
int main() {
Perry perry("Перри"); // Создаем объект Перри
Rick rick("Рик"); // Создаем объект Рик
// Вызываем метод introduce для каждого персонажа
perry.introduce();
rick.introduce();
// Проверяем, является ли Доктор Зло преступником
if (perry.isCriminal("Доктор Зло")) {
std::cout << "Доктор Зло - преступник!" << std::endl;
} else {
std::cout << "Доктор Зло - не преступник!" << std::endl;
}
// Считаем победы над крысами
int ratCount = 5; // Просто для примера
int ratVictories = rick.countRatVictories(ratCount);
std::cout << "Рик победил " << ratVictories << " крыс!" << std::endl;
return 0;
}
Похожие вопросы
- Помогите понять отношения между классами / C/C++
- Задание по программированию c++, буду благодарен помощи
- Получить имена полей класса c++
- Синтаксическая ошибка класса. C++
- Задание по программированию c++
- Помогите с Заданием по программированию c++
- Информатика, 8 класс. C++
- Нужна помощь с выполнением заданий в C++
- Задание на C/C++
- Помогите решить задание на c++