Перегрузка Операторов

Тема в разделе "C/C++/C#", создана пользователем xparen, 14 ноя 2011.

  1. xparen

    xparen Гость

    Репутация:
    0
    Здравствуйте! Есть несколько вопросов касающихся перегрузки операторов... Допустим есть класс. Осуществляеться работа с матрицами. Нужно перегрузить оператор + для нахождения суммы двух матриц. Вопрос: мне сказали, что можно поставить на return матрицу или *this(немного не понимаю как работает оператор this, объясните плз на простом примере). Какая между этими вариантами будет разница??? объясните по подробнее, на примере:
    Код:
    Matrix Matrix::operator +(const Matrix &A)
    {
    for(int i=0; i<n; i++)
    for(int j=0; j<m; j++)
    b[i][j]=a[i][j]+A.a[i][j];
    return *this;
    
    
    }
     
  2. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    this - это указатель на класс, в котором ты работаешь.
    Т.е., например, код:
    Код:
    #include <stdio.h>
    
    class test {
    public:
    void print() {
    printf( "%8.8x\n", this );
    }
    };
    
    int main()
    {
    test	a;
    a.print();
    return 0;
    }
    выведет на экран адрес указателя на объект a типа test. Т.е. свой собственный адрес в памяти.
     
  3. xparen

    xparen Гость

    Репутация:
    0
    Спасибо. А еще такой вопрос... А в чем будет заключься разница, если я на возврат поставлю матрицу или указател this? Что правильнее использовать и почему? Просто при реализации и тем и другим методом разницы я не увидел.
     
  4. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Какая разница в том, поставишь ты на возврат класс Matrix или двумерный массив?! По-моему разница очевидна.
     
Загрузка...
Похожие Темы - Перегрузка Операторов
  1. lisica198808
    Ответов:
    0
    Просмотров:
    1.061
  2. MGeorge
    Ответов:
    0
    Просмотров:
    1.434
  3. sasha465
    Ответов:
    1
    Просмотров:
    1.519
  4. XADD
    Ответов:
    1
    Просмотров:
    1.146
  5. XADD
    Ответов:
    9
    Просмотров:
    2.611

Поделиться этой страницей