Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2006-11-23 18:27:25

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

c++ przeciazenie operatorow

pod shitem dziala ale ciekawe jak to robic pod linuxem chodzi mi generalnie  przeciazenie operatorow 2 argumentowych takich jak + - * /

przykład

Kod:

#include <iostream.h>

class kwadrat{
  private:
   int a;

  public:
  kwadrat()
   {a=1}

  kwadrat (kwadrat & x)
  {
    a = x.a;
  }

  kwadrat (int a0)
  {
    a=a0;
  }

  void operator-=(kwadrat & kw)
  {
    this->a-=kw.a;
  }

  kwadrat & operator=(kwadrat & kw)
  {
    a=kw.a;
    return *this;
  }

  kwadrat operator-(kwadrat & kwa)
  {
   return kwadrat(a-kwa.a);
  }

   ~kwadrat() {}

    friend ostream& operator<<(ostream & os, kwadrat & xx);

};


ostream & operator<<(ostream & os, kwadrat & xx)
 {
   os << xx.a << endl;
   return os;
 }

int main(void)
{
 kwadrat cos cos1(10), cos2(7);
 cout << "pocz cos1=" << cos1;
 cout << "pocz cos2=" << cos2;
 cout <<" cos = cos1 - cos2" << endl;
 cos = cos1 - cos2;
 cout << "cos=" << cos;
 cout << "cos=" << cos1;
 cout << "cos=" << cos2;
 return 0;
}

Offline

 

#2  2006-11-23 20:17:34

  tomek - Członek DUG

tomek
Członek DUG
Skąd: Wroclaw
Zarejestrowany: 2006-10-20

Re: c++ przeciazenie operatorow

np. tak:

Kod:

kwadrat& operator+ (kwadrat ka, const kwadrat& kb)
{
  return ka+= kb;
}

w tym przykladzie musisz miec oczywiscie wczeniej napisany operator +=

Kod:

kwadrat& kwadrat::operator+=(const kwadrat& kw)
{
  a = kw.a;
  return *this;
}

i tak samo robisz - * / % i co tam jeszcze sie da dwuargumentowego.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)