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

Перегрузка оператора "+" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прямоугольный пирог, разрезанный на m×n частей (как сделать, чтобы удалялся столбец и строка при выборе клетки?) http://www.cyberforum.ru/cpp-beginners/thread817674.html
Имеется прямоугольный пирог, разрезанный на m×n частей (клеток), причем, левая нижняя клетка пирога отравлена. Игроки по очереди выбирают какую-нибудь клетку пирога и «съедают» ее вместе со всеми клетками, расположенными правее и выше выбранной. Проигрывает тот, кто съедает отравленную клетку. #include <stdio.h> #include <conio.h> #include <locale.h> #include <iostream> int main() {
C++ Создать динамический массив. ввод,вывод и обработку элементов массива реализовать через функции создать динамический массив. ввод,вывод и обработку элементов массива реализовать через функции http://www.cyberforum.ru/cpp-beginners/thread817673.html
C++ Корректность ввода размера массива
Помогите написать код на c++ Условие: Напишите программу проверяя корректность ввода размера массива. Проверьте работу программы на контрольном примере. Дан массив, содержащий m строк и n столбцов. Определить среднее арифметическое отрицательных чисел строки массива.
Двумерные массивы с подпрограммами (Постройте вектор, каждый элемент которого содержит наименьший за абсолютной величиной элемент строки) C++
Помогите решить прогу на С++ с заданным условием : Используя подпрограммы составить алгоритм и программу обработки двумерного массива: Пусть данна матрица А (n x n). Постройте вектор, каждый элемент которого содержит наименьший за абсолютной величиной элемент строки.
C++ Обработка символьной информации (Вывести на экран начальные данные и присутствующие среди них произведения) http://www.cyberforum.ru/cpp-beginners/thread817649.html
Добрый вечер! В каждой из 10 строчных переменных находятся название художественного произведения и фамилия автора.Вывести на экран начальные данные и присудствующие среди них произведения T.G.Shevchenko (без перевода на русский) спасибо_ //Program obrabotka #include <iostream> #include <conio.h> #include <string.h> using namespace std; int main() {
C++ [Hidapi] как подключить библиотеку? вот отсюда скачал. линковщик ругается незнаю че делать. 1>------ Build started: Project: consolhid, Configuration: Debug Win32 ------ 1> Creating library C:\Documents and Settings\Administrator\Рабочий стол\Новая папка (4)\consolhid\consolhid\Debug\consolhid.lib and object C:\Documents and Settings\Administrator\Рабочий стол\Новая папка (4)\consolhid\consolhid\Debug\consolhid.exp... подробнее

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

Перегрузка оператора "+" - C++

25.03.2013, 00:14. Просмотров 414. Ответов 8
Метки (Все метки)

Доброго времени суток! Задание звучит так: Написать класс для работы с длинными числами. Создается два экземпляра класса, после перегружается оператор "+" для вычисления суммы между этими двумя экземплярами.

Помогите найти ошибку, заранее спасибо!

Код:
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
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
 
class bigint
{
    int a[256], c[256];
    int s, lenth, maxlen;
 
public:
    bigint(int [], int);
    void operator +(bigint [], bigint []);
};
 
 
bigint::bigint(int a[], int lenth)
{
    s=0;
    bigint::lenth = lenth;
 
    int k;
 
    for(int i=0; i<lenth; i++)
    {
        bigint::a[i]=a[i];
    }
    for(int i=0; i<lenth/2; i++)
    {
        k=bigint::a[i];
        bigint::a[i]=bigint::a[lenth-i-1];
        bigint::a[lenth-i-1]=k;
    }
}
 
void bigint::operator +(bigint num1[], bigint num2[])
{
    for(int i=0; i<maxlen; i++)
    {
        s=0;
        if(num1.a[i]+num2.a[i]>=10)
            s=1;
        c[i]=(num1.a[i]+num2.a[i])%10;
        num1.a[i+1]+=s;
    }
}
 
int main()
{
    setlocale(0, "rus");
    int n=256, lenth, lenth2;
    int *mass = new int[n];
    int *mass2 = new int[n];
    char *buff=new char[n];
 
    cout<<"Введите первое число: ";
    cin.sync();
    cin.getline(buff,n);
    lenth=strlen(buff);
    for(int i=0;i<lenth;i++)
    {
        mass[i]=buff[i]-48;
        buff[i]=0;
    }
 
    cout<<"Введите второе число: ";
    cin.sync();
    cin.getline(buff,n);
    lenth2=strlen(buff);
    for(int i=0;i<lenth2;i++)
    {
        mass2[i]=buff[i]-48;
        buff[i]=0;
    }
    bigint num1(mass, lenth);
    bigint num2(mass2, lenth2);
    num1+num2;
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru