Twitter und Facebook-Anbindung
X
Tweet Follow @twitterapi
!!! Anbindung an twitter und facebook öffnen !!!

Wenn Ihnen mein Online-Buch gefällt,
dann bedanken Sie sich doch mit einer kleinen Spende...

23.4 Vergleiche (==)

23.4 Vergleiche (==)

Natürlich ist es auch möglich, die Vergleichsoperatoren zu überladen. Wie das geht, werde ich jetzt am "==" Operator demonstrieren. Schauen Sie sich zuerst an, wie die Header-Datei erweitert werden mussn.

 1
 2
 3
					
		// Vergleich (Binär)
		bool		operator==(const CInteger&) const;
		bool		operator==(const int&) const;
					

Und jetzt der entsprechende Teil für die CPP-Datei

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
					
// Vergleichen ////////////////////////////////////////////////////////////////
bool CInteger::operator==(const CInteger& oInt) const {
	return this->m_iValue == oInt.m_iValue;
}

bool CInteger::operator==(const int& iInt) const {
	return this->m_iValue == iInt;
} // operator== ///////////////////////////////////////////////////////////////

// ...

// Ermöglicht wird jetzt z.B. so etwas
CInteger oObjekt1(5);
CInteger oObjekt2(7);

if ((oObjekt1 == oObjekt2) || (oObjekt1 == 15)) {
	// ...
} // end of if

// oder auch
CInteger* pZeigerAufObjekt1	= new CInteger(5);
CInteger* pZeigerAufObjekt2	= new CInteger(7);

if ((*pZeigerAufObjekt1 == *pZeigerAufObjekt2) || (*pZeigerAufObjekt1 == 15)) {
	// ...
} // end of if

delete pZeigerAufObjekt1;
delete pZeigerAufObjekt2;
					

Ich denke mal, das man jetzt nicht mehr so viel erklären muss, da mittlerweile nichts mehr spannendes neues passiert. Es wird wieder die Methode des links vom "==" stehenden Objekt aufgerufen und der Übergabeparameter ist wieder das rechts stehende Glied. Hier wird wieder unterschieden, ob reechter Hand ein Objekt der selben Klasse oder ein Integer steht. Die Implementierungen für andere Vergleichsoperatoren (<. <=, >, >= und !=) und oder anderen Typen, sieht logischerweise wieder ähnlich aus. Auch diese Methoden ändern das Objekt nicht und somit sind die Methoden wieder als konstant deklariert. "Logisch", sollte auch der Rückgabeparameter sein.

Zum Seitenanfang
Zum Inhaltsverzeichnis

© Copyright by Thomas Weiß, 2009 - 2012