2013-04-27 17 views
8

Definiuję klasę NS i chcę wykonywać operacje matematyczne na obiektach tej klasy. I z powodzeniem skompilowany przeciążony +, -, *, /, ... Moim problemem jest to, że nie mogę skompilować kod, który ma część takiego:Przeciążanie operatora C++, zdefiniuj negatyw obiektu.

NS a,b; 
a = -b; 

Jak mogę określić negatywne obiektów?

+6

czytając Twój C++ książkę! –

Odpowiedz

18

Robisz to w bardzo podobny sposób do przeciążania operatora binarnego -. Zamiast tego stajesz się funkcją nullarną, jeśli jest członkiem, lub funkcją unarną, jeśli nie jest członkiem. Na przykład, jako członek:

class NS 
{ 
    public: 
    // Applies to this 
    NS operator-() { /* implement */ } 
}; 

Jako trzeciego:

class NS 
{ 
    friend NS operator-(const NS&); 
}; 

// Applies to obj 
NS operator-(const NS& obj) { /* implement */ } 
Powiązane problemy