maciek0013 Opublikowano 5 Lutego 2005 Zgłoś Opublikowano 5 Lutego 2005 Witam... Mam takie pytanie : operator '-' jest operatore ilo argumentowym ?? Bo przecież można napisać -a jak równiez a-b (więc mamy albo jeden albo dwa argumenty). Więc jak napisać operator - dla mojej klasy, żeby oba przypadki były uwzględnione ?? Załóżmy, że mam klase : class moja { int a, b; public : moja operator- (moja &tym){ moja wynik; wynik.a = a - tym.a; wynik.b = b - tym.b; return wynik; }; }; Powiedzmy że tak mniej więcej wygląda definicja klasy. Jeżeli gdzieś użyje a - b (dla a i b obiektów klasy moja) to zadziała. Jeżeli zrobie a-3 (o ile dopisze jeszcze konwersje int -> moja) też zadziała. A co jeżeli zrobie -a (np cout << "Wartość przeciwna ... : "<< -a //tutaj zakładam, że a bedzie public Czy ktoś ma jakiś pomysł ??? Będę wdzięczny za pomoc. P.S. Jeżeli ktoś kiedyś poruszył taki temat to przepraszam za powtórkę... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
marcinEc Opublikowano 5 Lutego 2005 Zgłoś Opublikowano 5 Lutego 2005 Operator '-' może być dwu- jak i jednoargumentowy. Zależnie od ilości argumentów operatora (dwa lub jeden) taki zostanie użyty do obliczenia wyrażenia. Nie wiem gdzie widzisz problem... class A{ int a;public: A() { a = 11; } friend A operator-(A &a);};// jako funkcja zaprzyjaźniona o jednym argumencieA operator-(A &a){ A w; w.a=-a.a; return w;}Albo jako niestatyczną, bezparametrową funkcję składową, czyli operator-() w klasie. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...