Skocz do zawartości
maciek0013

Operatory

Rekomendowane odpowiedzi

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ę...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...