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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
skiff.
6 / 6 / 2
Регистрация: 10.09.2011
Сообщений: 87
#1

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

26.03.2013, 18:54. Просмотров 190. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста переделать методы 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++
Не смог сам разобраться.. Класс, хранящий 8 бит информации – байт флагов b1. Создать методы, выполняющие поразрядное отрицание &quot;~&quot;...

Как совместить код, реализующий методы и перегружаемые операции - C++
Есть такое задание::::) Разработать класс «Вектор» – Vektor размерности n . Определить несколько конструкторов, в том числе конструктор...

Как переделать с public на private и создать методы для закрытых полей? - C++
Очень простой вопрос , но я только сегодня начал учить классы и возник такой вопрос - Как переделать с public на private и создать методы...

Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы - C++
Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы Abiturient:...

Перегрузить операции сравнения комплексных чисел и операции потокового вывода - C++
Создать класс комплексное число. Перегрузить операции сравнения комплексных чисел! =, ==,&gt;, &lt;,&gt; =, &lt;= И операции потокового ввода-вывода. ...

Заменить операции ifstream на операции fprintf - C++
Собственно как и написано в заголовке заменить операции ifstream на fprintf со всеми вытекающими(типо getline) необходимо мне. Помогите...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 18:54
Привет! Вот еще темы с ответами:

Битовые операции и операции смещения языка С - C++
Доброго времени суток господа,помогите пожалуйста.Есть 2 кода к задаче,первый работает верно(переводит обычные числа в 16-ти ричные),а...

Записать логические выражения, используя условные операторы, операции отношений и логические операции - C++
Записать логические выражения, используя условные операторы, операции отношений и логические операции алгоритмического языка ...

Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы - C++
Создать класс Triad (тройка чисел); определить методы увеличения полей на 1. Определить производный класс Date с полями: год, месяц и день....

Переделать статические методы в нестатические - C#
Здравствуйте, буду очень благодарен за помощь, тк уже третьи сутки ломаю голову Собственно кусок программы приведен ниже, в программе...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru