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

Перегрузка классов - C++

Восстановить пароль Регистрация
 
kukhtikov
2 / 2 / 0
Регистрация: 16.12.2012
Сообщений: 97
11.03.2013, 22:55     Перегрузка классов #1
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
struct Massiv
{
    int n;
    int *p;
    Massiv ()
    {
        p=0;
        n=0;
    }
    Massiv (int *y,int n)
    {
        this->n=n;
        p=new int[n];
        for (int i=0; i<n; i++)
            this->p[i]=y[i];
    }
    ~Massiv()
    {
        if (n>0) delete []p;
    }
    int & operator[] (int index)
    {
        return p[index];
    }
};
Условие:
Кликните здесь для просмотра всего текста

Перегрузить операцию [] (обращение к элементу массива) и операцию + (сложение). В операции + два операнда имеют тип Massiv, в результате получаем новый объект типа Massiv, длина которого равна максимальной длине двух исходных массивов, а элемент равен сумме соответствующих элементов (имеющих одинаковые индексы), если они есть, или элементу массива максимальной длины, если соответствующих элементов нет.


Объясните как перегрузить классы( Не понимаю...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 22:55     Перегрузка классов
Посмотрите здесь:

Перегрузка операторов для классов C++
Перегрузка ofstream / ifstream для классов C++
перегрузка классов C++
C++ Шаблоны классов, перегрузка operator<< класса ostream
C++ “Перегрузка операторов для классов
C++ перегрузка операторов для наследованных классов
Шаблоны классов, перегрузка операторов C++
Перегрузка оператора = и +=, используя наследование классов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
11.03.2013, 23:08     Перегрузка классов #2
ну один вы перегрузили
Цитата Сообщение от kukhtikov Посмотреть сообщение
int & operator[] (int index)
* * {
* * * * return p[index];
* * }
еще нужно перегрузить оператор[] для константного метода, чтобы можно было обращаться к элементам константного объекта.
C++
1
2
3
4
const int & operator[] (int index) const
{
    return p[index];
}
оператор+ - находите массив с максимальной длиной и инициализируете его значениями этого массива, затем просто добавляете второй массив.
C++
1
2
3
4
Massiv operator+(const Massiv &m) const
{
    ...
}
Yandex
Объявления
11.03.2013, 23:08     Перегрузка классов
Ответ Создать тему
Опции темы

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