8 Ocak 2018 Pazartesi

Compound Assignment Operators

Giriş
C++'ta kullanılabilen Compound Assignment Operators toplam 10 tane. Bütün metodlar gibi bu operatörler istenirse virtual olabiliyorlar.

Addition Assignment
Metodun imzası şuna benzer olmalı. Kendisini değiştirmeli ve kendine referans dönmeli.
BigInt& BigInt::operator+=(BigInt const& other)
Örnek
Şöyle yaparız.
Vector& operator+=(Vector const& v)& {
  x += v.x;
  y += v.y;
  return *this;
}
friend Vector operator+(Vector lhs, Vector const& v) {
  lhs+=v;
  return std::move(lhs); // move is redundant yet harmless in this case
}
Vector& operator-=(Vector const& v)& {
  x -= v.x;
  y -= v.y;
  return *this;
}
friend Vector operator-(Vector lhs, Vector const& v) {
  lhs -= v;
  return std::move(lhs); // move is redundant yet harmless in this case
}

Hiç yorum yok:

Yorum Gönder