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

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

  1. xparen

    xparen Гость

    Здравствуйте! Есть несколько вопросов касающихся перегрузки операторов... Допустим есть класс. Осуществляеться работа с матрицами. Нужно перегрузить оператор + для нахождения суммы двух матриц. Вопрос: мне сказали, что можно поставить на return матрицу или *this(немного не понимаю как работает оператор this, объясните плз на простом примере). Какая между этими вариантами будет разница??? объясните по подробнее, на примере:
    Код (C++):
    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
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    this - это указатель на класс, в котором ты работаешь.
    Т.е., например, код:
    Код (C++):
    #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 Гость

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

    lazybiz Well-Known Member
    C\C++ Team

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

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