Форум программистов, компьютерный форум CyberForum.ru

Перегрузка арифметических операций для работы с объектами классов. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Аня 13
 Аватар для Аня 13
2 / 2 / 0
Регистрация: 27.04.2010
Сообщений: 44
13.12.2010, 23:08     Перегрузка арифметических операций для работы с объектами классов. #1
Создать класс Animal, содержащий следующие элементы:
- поле «вес» float Mass;
- поле «пол» char* Sex;
- поле «окрас» char* Color;
- поле «возраст» int Age;
- метод получения веса float GetMass();
- метод получения пола char* GetSex();
- метод получения возраста int GetAge();
- метод получения окраски char* GetColor();
- конструктор с параметрами Animal(float Mass, char* Sex, ,char* Color, int Age);
Задание:
Для соответствующего класса, перегрузить арифметические операции(+,-,*,/). При перезгузке арифметические действия должны выполняться относительно только числовых полей!!!
Создать несколько объектов класса и проинициализировать их с помощью конструктора с параметрами. Создать несколько дополнительных объектов таким образом, чтобы:
- первый объект являлся суммой двух других объектов;
- второй объект являлся разностью двух других объектов;
- третий объект являлся произведением двух других объектов;
- четвертый объект являлся частным двух других объектов;
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 23:08     Перегрузка арифметических операций для работы с объектами классов.
Посмотрите здесь:

C++ Классы для арифметических операций с большими числами (целые числа более 10 знаков)
Перегрузка операторов для классов C++
Перегрузка арифметических операций C++
Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 C++
C++ “Перегрузка операторов для классов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
13.12.2010, 23:12     Перегрузка арифметических операций для работы с объектами классов. #2
Что такое Animal?
Аня 13
 Аватар для Аня 13
2 / 2 / 0
Регистрация: 27.04.2010
Сообщений: 44
13.12.2010, 23:24  [ТС]     Перегрузка арифметических операций для работы с объектами классов. #3
Animal-это класс.В переводе с англ.-животное.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.12.2010, 02:36     Перегрузка арифметических операций для работы с объектами классов. #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Нелепый сюрреализм. Складывать животных по целочисленным параметрам... метр_колючей_проволоки = ёж+уж. Бред.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <string>
#include <iostream>
 
using namespace std;
 
class Animal
{
    float mass;
    char gender; // у вас только секс на уме
    string color;
    int age;
public:
    Animal(float m, char g, string c, int a)
        : mass(m), gender(g), color(c), age(a) {}
    Animal(const Animal& other)
        : mass(other.GetMass()), gender(other.GetGender()), color(other.GetColor()), age(other.GetAge()) {}
        
    float GetMass() const { return mass; }
    char GetGender() const { return gender; }
    string GetColor() const { return color; }
    int GetAge() const { return age; }
 
    Animal operator= (const Animal& other)
    {
        if (this!=&other)
        {
            mass = other.GetMass();
            gender = other.GetGender();
            color = other.GetColor();
            age = other.GetAge();
        }
        return *this;
    }
 
    Animal operator+ (const Animal& other)
    {
        Animal temp(mass+other.GetMass(), gender, color, age+other.GetAge());
        return temp;
    }
    Animal operator- (const Animal& other)
    {
        Animal temp(mass-other.GetMass(), gender, color, age-other.GetAge());
        return temp;
    }
    Animal operator* (const Animal& other)
    {
        Animal temp(mass*other.GetMass(), gender, color, age*other.GetAge());
        return temp;
    }
    Animal operator/ (const Animal& other)
    {
        Animal temp(mass/other.GetMass(), gender, color, age/other.GetAge());
        return temp;
    }
    
    friend void show(const Animal& a)
    {
        cout << "Gender: " << a.gender << ", mass: " << a.mass << ", color: " 
        << a.color << ", age: " << a.age << "." << endl;
    }
    
    friend void AgeAnimal(Animal& a)
    {
        a.age++;
    }
};
 
int main()
{
        Animal a(5, 'M', "yellow", 4);
        Animal b(2, 'F', "green", 8);
        Animal c(4, 'M', "black", 5);
 
        // кролик складывается с кошкой
        show(a+b);
        // кошковычитание из собаки
        // (монстр с отрицательной массой)
        show(b-a);
 
        AgeAnimal(a);
        // кошки размножаются умножением...
        show(b*c);
        // клетки делятся
        show(c/b);
        return 0;
}
Все три задачи сразу.
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
14.12.2010, 02:38     Перегрузка арифметических операций для работы с объектами классов. #5
Цитата Сообщение от lemegeton Посмотреть сообщение
Складывать животных по целочисленным параметрам... метр_колючей_проволоки = ёж+уж. Бред.

Не по теме:

где-то это уже было

lemegeton
14.12.2010, 02:45
  #6

Не по теме:

меня тоже не покидает ощущение де жа вю. Кто-то уже где-то постил такую задачу.

ForEveR
14.12.2010, 03:43     Перегрузка арифметических операций для работы с объектами классов.
  #7

Не по теме:

Полагаю вы про это, камрады
Создать класс Animal

Yandex
Объявления
14.12.2010, 03:43     Перегрузка арифметических операций для работы с объектами классов.
Ответ Создать тему
Опции темы

Текущее время: 12:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru