Перегрузка бинарной операции

Тема в разделе "Общие вопросы по С и С++", создана пользователем zzz, 8 дек 2006.

Статус темы:
Закрыта.
  1. zzz

    zzz Гость

    Как перегрузить бинарную операцию ? Например пишу так :
    complx operator * (complx,complx) - говорит можно указать только один параметр
    Помогите плиз ...
     
  2. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Если ты определяешь его как член класса, то должен быть 1 параметр - вторым будет сам объект. С двумя параметрами определяется функция не-член класса.
     
  3. Creo

    Creo Гость

    Если поподробней, то
    Код (Text):
    class A {
    int i;
    i operator*(i) {return (this->i*i);}
    };
    //or
    // i operator*(i,j) {return (i*j);}
    Используй или тот или другой вариант. Если i закрытая ф-ция член. А ты хотел бы чтоб в качестве параметров она получала два оператора, объяви ее другом. И еще насколько я понял в качестве параметров ты передаешь в ф-цию класс. Тогда делай это при помощи константных ссылок, так быстрее ;)
    Код (Text):
    cmplx& operator*(const cmplx&, const cmplx&)
     
Загрузка...
Статус темы:
Закрыта.

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