Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использование встроенных, дружественных функций и функций для работы с объектами классов. http://www.cyberforum.ru/cpp-beginners/thread210434.html
Создать класс Animal, содержащий следующие элементы: - поле «вес» float Mass; - поле «пол» char* Sex; - поле «окрас» char* Color; - поле «возраст» int Age; - метод получения веса float...
C++ Изменить дизайн VS2010 Установил себе Microsoft Visual Studio 2010, такой вопрос возможно ли сменить дизайн самой студии, всё синее, режущее глаза, можно ли установить оформление похоже на Microsoft Visual Studio 2008, я... http://www.cyberforum.ru/cpp-beginners/thread210432.html
C++ Создание классов. Использование конструкторов и деструкторов.
Создать класс Animal, содержащий следующие элементы: - поле «вес» float Mass; - поле «пол» char* Sex; - поле «окрас» char* Color; - поле «возраст» int Age; - метод получения веса float...
Табуляция через классы C++
Написал программу , которая должна в таблицу выносить значения Суммы, но есть ошибка , которую никак не могу понять error C2601: 'main' : local function definitions are illegal #include...
C++ Перегрузка << для вектора http://www.cyberforum.ru/cpp-beginners/thread210385.html
Добрый день, перегружаю оператор "<<" для вектора который содержит строки так вот - возник вопрос почему перегрузить можно только вне класса? например #include <iostream> #include <stdlib.h>...
C++ Действия со строками 16.Составить программу на СИ. Где дан текст. Определить, встречается ли в нем заданное слово, если да – то сколько раз. подробнее

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
14.12.2010, 02:36
Нелепый сюрреализм. Складывать животных по целочисленным параметрам... метр_колючей_проволоки = ёж+уж. Бред.
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;
}
Все три задачи сразу.
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru