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

Переделать методы в операции перегрзки - C++

Восстановить пароль Регистрация
 
skiff.
6 / 6 / 2
Регистрация: 10.09.2011
Сообщений: 87
26.03.2013, 18:54     Переделать методы в операции перегрзки #1
Помогите пожалуйста переделать методы Cpy и Add в перегрузки приравнивания и сложения
Программа вывода 100го числа Фибоначчи
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
class ArrFib //Header
{
private:
    int *_arr;
    int _arrSize;                   //Переменная размера числа Фибоначчи.
public:
    ArrFib(int _arrSizeIn);         //Конструктор с  параметром
    void Cpy(ArrFib Arr2);                  //Метод копирования
    void Add(ArrFib Arr2, ArrFib Arr3);     //Метод слияния
    void Print();                           //Метод печати
    ArrFib operator=(const ArrFib&);
    ArrFib operator+(const ArrFib& Arr2);
};
//Тут методы
#include <iostream>
#include "ArrFib.h"
using namespace std;
 
ArrFib::ArrFib(int _arrSizeIn)
    {
        _arrSize = _arrSizeIn;
        _arr = new int[_arrSize];
        for (int i = 0; i < _arrSize; i++)
            _arr[i] = 0;
        _arr[_arrSize-1] = 1;
    }
 
    void ArrFib::Cpy(ArrFib Arr2)
    {
        for (int i = 0; i < _arrSize; i++)
            Arr2._arr[i] = _arr[i];
    }
 
    void ArrFib::Add(ArrFib Arr2, ArrFib Arr3)
    {
        for (int i = _arrSize -1; i >= 0; i--)
        {
            if (_arr[i] + Arr2._arr[i] >= 10)
            {
                _arr[i] -= 10;
                _arr[i-1]++;
            }
            Arr3._arr[i] = _arr[i] + Arr2._arr[i];
        }
    }
    void ArrFib::Print()
    {
        for (int i = 0; i < _arrSize; i++)
            printf("%c", _arr[i] + '0');
        printf("\n");
    }
В main'e это вызывалось так:
C++
1
2
3
4
5
6
7
8
9
10
    int ArrSize = 21;
    ArrFib Arr1(ArrSize);
    ArrFib Arr2(ArrSize);
    ArrFib Arr3(ArrSize);
    ArrFib Arr4(ArrSize);
    for (int i = 3; i <= 100; i++)
    {
        Arr1.Add(Arr2, Arr3);
        Arr2.Cpy(Arr1);
        Arr3.Cpy(Arr2);
Нужно переделать в перегрузку.
Вот, примерно перегрузку = сделал:
C++
1
2
3
4
5
6
7
8
9
ArrFib operator=(const ArrFib&); //Это в хэдэре
ArrFib ArrFib :: operator=(const ArrFib& Arr2)
{
    for (int i = 0; i < _arrSize; i++)
    {
            Arr2._arr[i] = _arr[i];
    }
    return *this;
}
Добавлено через 5 часов 15 минут
Как-то так, но ничего не пашет толком вроде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    ArrFib ArrFib :: operator+(const ArrFib& Arr2)
{
    int ArrSize=21;
    ArrFib Arr3(ArrSize);
    for (int i = _arrSize -1; i >= 0; i--)
        {
            if (_arr[i] + Arr2._arr[i] >= 10)
            {
                _arr[i] -= 10;
                _arr[i-1]++;
            }
            Arr3._arr[i] = _arr[i] + Arr2._arr[i];
        }
    return *this;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2013, 18:54     Переделать методы в операции перегрзки
Посмотрите здесь:

C++ Как совместить код, реализующий методы и перегружаемые операции
C++ методы
C++ Методы сортировки
C++ Численные методы.
C++ Методы и классы
Задачка на классы (Создать методы, выполняющие поразрядные операции) C++
C++ Как переделать с public на private и создать методы для закрытых полей?
C++ Виртуальные методы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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