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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ задание на потоки.решение СЛАУ http://www.cyberforum.ru/cpp-beginners/thread818930.html
Помогите пожалуйста. Решить систему линейных алгебраических уравнений с трёхдиагональной матрицей методом циклической редукции.это нужно реализовать либо на С++, либо на С.Заранее спасибо.
C++ stl::list erase() вот такой код есть, но не работает. как подправить? list<int> ls; list<int>::iterator it; for(int i=0; i<5; i++) { ls.push_back(i); } for(it = ls.begin(); it != ls.end(); it++) http://www.cyberforum.ru/cpp-beginners/thread818910.html
показывает ошибку в `pow`, почему?и как это исправить? C++
#include <iostream> #include <math.h> using namespace std; class myClass { double a; public: double b; void Get(double, double);
Проблемма с заполнением динамического двумерного массива C++
По заданию,нужно: -объявить двумерный динамический массив -спросить и пользователя размеры массива -выделить память -заполнить массив случайными числами Имееться структура,объявления...
C++ портфель задач http://www.cyberforum.ru/cpp-beginners/thread818894.html
Здравствуйте.помогите пожалуйста. Генерация всех простых чисел, меньших n, с помощью портфеля задач. В портфеле будут содержаться все нечётные числа (физически они все не хранятся, поскольку из...
C++ Нужно составить программы 1. Язык С++ 2. Помогите к понедельнику надо сдать, а язык вообще не понимаю И еще операторы ввода и вывода по возможности pintf и scanf Первое задание С использованием инструкций if, if-else. ... подробнее

Показать сообщение отдельно
skiff.
6 / 6 / 2
Регистрация: 10.09.2011
Сообщений: 87

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

26.03.2013, 18:54. Просмотров 194. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru