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

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

Восстановить пароль Регистрация
 
dimitrykorno
0 / 0 / 0
Регистрация: 16.04.2016
Сообщений: 26
17.10.2016, 15:34     Перегрузка оператора #1
Добрый день!
Мне нужно перегрузить в классе двумерного массива оператор ++, чтобы она возвращал максимальный элемент массива.

класс в файле .h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class int_matrix
{
private:
    int lines;
    int columns;
    int **matr;
public:
    int_matrix(int l,int c);
    int_matrix(const int_matrix& mat);
    ~int_matrix();
    void print();
    void print(int in_line);
 
    int operator++(const int_matrix& mat,int ); //оператор, который не получается перегрузить.
    
    friend double** operator%(int_matrix& mat1, int_matrix& mat2);
};
определение его в файле .cpp
C++
1
2
3
4
5
6
7
8
int int_matrix:: operator++( const int_matrix& mat,int )
{
     int max = mat.matr[0][0];
     for (int i = 0; i < mat.lines; i++)
         for (int j = 0; j < mat.columns; j++)
             if (mat.matr[i][j] > max) max = mat.matr[i][j];
     return max;
}
не знаю, как правильно это оформить, оператор постфиксный, значит по теории, должен быть второй аргумент int (хоть и не понимаю, зачем), но так говорит, что слишком много формальных аргументов, если убрать, то просит обратно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2016, 15:34     Перегрузка оператора
Посмотрите здесь:

C++ Перегрузка оператора
C++ Перегрузка оператора []
Перегрузка оператора -- C++
Перегрузка оператора C++
Перегрузка оператора + C++
Перегрузка оператора << C++
C++ Перегрузка оператора =
C++ Перегрузка оператора <<

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4298 / 3719 / 1252
Регистрация: 14.04.2014
Сообщений: 14,542
17.10.2016, 16:10     Перегрузка оператора #2
Там только int должен быть - 1 параметр.
SpBerkut
Объявлятель переменных
 Аватар для SpBerkut
905 / 231 / 113
Регистрация: 24.09.2011
Сообщений: 874
Завершенные тесты: 2
17.10.2016, 16:28     Перегрузка оператора #3
Не, ну я могу ошибаться, но как-то вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
// это в *.h
int operator++(const int mat);
    
// это в *.cpp
int int_matrix:: operator++( const int mat )
{
     int max = this->matr[0][0];
     for (int i = 0; i < this->lines; i++)
         for (int j = 0; j < this->columns; j++)
             if (this->matr[i][j] > max) max = this->matr[i][j];
     return max;
}
Yandex
Объявления
17.10.2016, 16:28     Перегрузка оператора
Ответ Создать тему

Метки
c++, перегрузка операторов
Опции темы

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