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

Перегрузка оператора ==, в классе Матрица - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проблема с вводом текста. http://www.cyberforum.ru/cpp-beginners/thread370430.html
Привет всем!!! извините конечно, за столь простой вопрос.. забыл и никак вспомнить не могу, как в Объект инспекторе выставить значения текста в кнопке не по центру как по умолчания выравнивается, а по длине кнопки.. Заранее благодарю..
C++ Какие есть библиотеки для работы с MYSQL Всем привет. Я ищу простую (С++) библиотеку для работы с MYSQL. Программа консольная, среда Visual Studio 9-10 Сурс из официального сайта мускула, буст и ACE не вариант. Заранее благодарю.:drink: http://www.cyberforum.ru/cpp-beginners/thread370429.html
Класс арифметических операций матрицы как на другую матрицу так и на число C++
Описать класс,реализующий тип данных "вещественная матрица" и работу с ними.Класс должен реализовывать слудующие операции над матрицами: 1)сложение,вычитание,умножение и деление(умножение и деление как на другую матрицу так и на число)(+ - * /) 2)Комбинированные операции присваивания(+= -= *= /=) 3)Операции сравнения на равенство неравенство 4)Операции вычисления обратной и транспонированной...
C++ Даны четыре вещественных числа от нуля. Проверить: образуют ли данные числа геометрическую прогрессию.
Даны четыре вещественных числа от нуля. Проверить: образуют ли данные числа геометрическую прогрессию.
C++ Задача про бинарный файл.. http://www.cyberforum.ru/cpp-beginners/thread370404.html
Добрый вечер) Вот возникла очередная проблемка с задачей по СИ++. Задача звучит таким образом: Создать бинарный файл f и записать в него действительные числа. Организовать просмотр бинарного файла и его обработку: найти сумму чисел, расположенных перед первым минимальным. Начало задачи я смогу, как мне кажется выполнить самостоятельно, но я все никак не пойму, как именно искать сумму чисел,...
C++ Анализатор кода Есть исходный файл (код C++) программы. Нужно создать дамп с анализом его содержимого. Например: #include <iostream> void func(int i) { return; } int main() подробнее

Показать сообщение отдельно
serginhold
2 / 2 / 0
Регистрация: 20.10.2011
Сообщений: 15
21.10.2011, 23:24     Перегрузка оператора ==, в классе Матрица
Код
#ifndef MATRIX_H
#define MATRIX_H

template <class T>
class Matrix
{
public:
   Matrix(int Rows, int Cols);
   ~Matrix();
   int RowsCount()const;
   int ColsCount()const;
   T* operator [] (int i);
   Matrix<T> operator = (const Matrix *a);
   bool operator == (const Matrix<T> *a);
   void output(int n, int m);
   void Random(int a, int b);
private:
   T** _data; // матрица
   int Rows; int Cols; // кол-во строк и столбцов
};


/* Часть реализации: */

template <class T>
T* Matrix<T>::operator [] (int i)
{
    // перегружаем оператор [], возвращаем строку матрицы
    return this->_data[i];
}

template <class T>
Matrix<T> Matrix<T>::operator = (const Matrix *a)
{
    // перегружаем оператор =, делаем копию матрицы `a`
    this->Rows = a->RowsCount(); this->Cols = a->ColsCount();
    this->~Matrix();
    
    this->_data = new T *[this->Rows];
    for (int i=0; i<this->Rows; i++) this->_data[i] = new T [this->Cols];
    
    for (int i=0; i<this->Rows; i++)
        for (int j=0; j<this->Cols; j++)
            this->_data[i][j] = a[i][j];
}

template <class T>
bool Matrix<T>::operator == (const Matrix<T> *a)
{
    // перегружаем оператор ==, сравнием матрицы по элементно
    if ((this->Rows != a->RowsCount()) || (this->Cols != a->ColsCount()))
        return false;
    for (int i=0; i<this->Rows; i++)
        for (int j=0; j<this->Cols; j++)
            if (this->_data[i][j] != a[i][j]) return false;
    return true;
}

#endif // MATRIX_H
Вот последнее не работает при таком вызове:
Код
if (matr1 == matr2) cout << "равны";
Выдает такие ошибки:
Код
main.cpp:31: ошибка: no match for 'operator==' in 'matr1 == matr2'

matrix.h:96: candidates are: bool Matrix<T>::operator==(const Matrix<T>*) [with T = float]
Как заставить это работать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru