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

перегрузка операций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ fopen и fdopen http://www.cyberforum.ru/cpp-beginners/thread809369.html
Помогите, пожалуйста, разобраться. Есть код скрипта, выводит картинку в браузере, скачал с инета: // Результат работы скрипта - оторбажение картинки. #include <stdio.h> // Возвращает размер...
C++ Написать функцию для печати дерева Функцию печати для дерева. Важен порядок,печать узлов по уровням слева на права.нужен фрагмент программы. http://www.cyberforum.ru/cpp-beginners/thread809364.html
C++ Сравнить структуру двух деревьев
Написать два варианта функции(с рекурсией и без). Даны два дерева,два указателя на корни. Функция возвращает логическое значение:если структура деревьев одинакова,то возвращает истину,...
C++ как в if поставить for?
Надо для всех значений массива проверить, равно ли какому либо из этих значений число введенное с клавиатуры. ЕСли k не равняется ни одному из значений массива, то записываем его в другой массив....
C++ Файлы. Добавить в матрицу столбец, содержащий суммы элементов каждой строки. Преобразованную матрицу http://www.cyberforum.ru/cpp-beginners/thread809353.html
В текстовом файле построчно хранится вещественная матрица размером не более 5х6. Добавить в эту матрицу столбец, содержащий суммы элементов каждой строки. Преобразованную матрицу записать в новый...
C++ Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл подробнее

Показать сообщение отдельно
karakul
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 5

перегрузка операций - C++

15.03.2013, 15:08. Просмотров 513. Ответов 4
Метки (Все метки)

Напишите программу, в которой используется класс Int, имитирующий стандартный класс Int. Перегрузите четыре целочисленных арифметических операции /, +, -, *. Так чтобы их можно было использовать для операций с объектами класса Int. Если результат выходит за границы типа int (в 32 разрядной системе) имеющие значение от -2 147 483 648 до 2 147 483 648, то операция должна послать сообщение об ошибках.

Операции я перегрузил.. а вот с частью "Если результат выходит за границы типа int (в 32 разрядной системе) имеющие значение от -2 147 483 648 до 2 147 483 648, то операция должна послать сообщение об ошибках." траблы..

буду очень благодарен за помощь..

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
87
88
89
90
91
92
93
#include <conio.h>
#include <iostream>
#include <windows.h>
using namespace std;
 
class Int
{ 
    int x;
public:
    Int (int X=0)
    {
        x=X;
    } 
    void show()
    {
        cout<<x;
    }
    Int &operator+ (Int &a)
    {
 
        Int plus(0);
        plus.x=x+a.x;
        return plus;
    }
    Int &operator/ (Int &a)
    {
        Int del(0);
        if (a.x==0)
            cout<<"Delit' na nol' nel'zya\n";
        else
            del.x=x/a.x;
        return del;
    }
    Int &operator- (Int &a)
    {
        Int minus(0);
        minus.x=x-a.x;
        return minus;
    }
    Int &operator* (Int &a)
    {
        Int umnoj(0);
        umnoj.x=x*a.x;
        return umnoj;
    }
};
 
void main()
{
    Int a,b,c;
    int i,z,y;
    do
    {
        cout<<"\nVybirite deystvie:\n1-zadat' znachenie peremennoy\n2-pereyti k vyboru operacii\n0-vyhod\n";
        cin>>i;
        switch(i)
        {
        case 1:
            cout<<"Vvedite zcheniya peremennyh:\n";
            cout<<"a=";
            cin>>z;
            a = Int(z);
            cout<<"\nb=";
            cin>>y;
            b = Int(y);
            break;
        case 2:
            cout<<"\nVybirite operaciu:\n1-umnojenie\n2-delenie\n3-vychitanie\n4-slojenie\n";
            cin>>i;
            switch(i)
            {
            case 1:
                c=a*b;
                c.show();
                break;
            case 2:
                c=a/b;
                c.show();
                break;
            case 3:
                c=a-b;
                c.show();
                break;
            case 4:
                c=a+b;
                c.show();
                break;
            }
            break;
        }
    }
    while(i);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru