Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Implementierungsproblem » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (5): « erste ... « vorherige 3 4 [5] Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Implementierungsproblem
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Kevin33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Über meine Dummheit können wir uns ja später streiten großes Grinsen

Etwas besser ?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
ostream& operator<<(ostream& out,CTeam const& rop){

	out << rop.m_teamName << ":" << "" << rop.m_goalsScoredTotal << rop.m_goalsReceivedTotal<< rop.m_equalTotal<< 3*rop.m_goalsScoredTotal+0*rop.m_goalsReceivedTotal+1*rop.m_equalTotal<<"Tore"<<rop.m_goalsScoredTotal<<":"<<rop.m_goalsReceivedTotal<<endl;
		
		return out;
	}



24.10.2017 21:23
Kevin33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Habe es hinbekommen.

Hier nochmal für die Nachwelt ,falls jemand sich irgendwann mal mit der Aufgabe beschäftigt.
Muss sich dann nicht dumm und dämlich fragen großes Grinsen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
ostream& operator<<(ostream& out,CTeam const& rop){

		out << rop.m_teamName << ":" << "" << rop.m_winsTotal << rop.m_equalTotal<< rop.m_lostTotal<<" (" << 3*rop.m_winsTotal+1*rop.m_equalTotal<< "Punkte )" << " " <<"Tore"<<rop.m_goalsScoredTotal<<":"<<rop.m_goalsReceivedTotal<<endl;

		return out;
	}



Habe getestet,die Ausgabe kommt richtig aus.
25.10.2017 05:56
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Für die Nachwelt noch ein paar Anmerkungen:
  • Es macht offensichtlich überhaupt keinen Sinn, einen Leerstring (also "") mit in den Stream zu schreiben.
  • Wenn man mehrere String-Literale hintereinander ausgeben will, sollte man die zu einem String zusammenfassen, also: "abc" << "def" schreibt man dann besser als "abcdef".
  • die Rechnung 3*m_winsTotal + m_equalTotal ist gerade das, was die Methode getTotalPoints() ausrechnet. Dann sollte man auch diese Methode verwenden und nicht dieselbe Berechnung nochmal machen. Wenn sich irgendwann die Berechnungsart in Zukunft ändern sollte, muss man das dann nur an einer Stelle anpassen.

Mehr hab ich mir nicht angeschaut. Aber das sollte man schon beachten.

Gruß
Marco
25.10.2017 14:24 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Kevin33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Aber mir wurde das von jemanden erklärt das man keine Funktionen beim operator aufrufen kann.

Es wurden ja auch fehler in meinem Ansatz angezeigt .

Aber du meintest ja gleich : Ich will euch verarschen großes Grinsen
25.10.2017 15:34
Kevin33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zum Vergleich der Tabellenplätze implementieren Sie den überladenen Operator <, der true zurückgibt, wenn das Team des linken Operanden besser ist als das Team des rechten, also einen kleineren Tabellenplatz erhält. Er ist wie folgt spezifiziert: &#61623; Es wird true zurückgegeben, wenn der linke Operand mehr Punkte hat als der rechte Operand. &#61623; Bei gleich vielen Punkten entscheidet die Tordifferenz (Gesamtzahl eigener Tore – Gesamtzahl Gegentore). Wenn der linke Operand eine bessere (höhere) Tordifferenz hat als der rechte, wird ebenfalls true zurückgegeben. &#61623; In allen anderen Fällen wird false zurückgegeben

Ich bekomme hier die Fehlermeldungen net weg string:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
bool CTeam::operator< (const CTeam& rop){
if(this->getTotalPoints()>rop->getTotalPoints()){

return true;
}
if(this->getTotalPoints()== rop.getTotalPoints()){

int Team1Points = this->m_goalsScoredTotal - this->m_goalsReceivedTotal;
int Team2Points = rop.m_goalsScoredTotal - rop.m_goalsReceivedTotal;

if(Team1Points>Team2Points){
return true;
}
else{

return false;
}

}



Bekomme folgende Fehlerescription Resource Path Location Type
base operand of '->' has non-pointer type 'const CTeam' CTeam.cpp /CTeam line 70 C/C++ Problem
Description Resource Path Location Type
passing 'const CTeam' as 'this' argument discards qualifiers [-fpermissive] CTeam.cpp /CTeam line 74 C/C++ Problem
25.10.2017 15:37
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Kevin33
Aber mir wurde das von jemanden erklärt das man keine Funktionen beim operator aufrufen kann.

Das ist auch wieder Blödsinn. Da hast Du sicher wieder etwas falsch verstanden.
code:
1:
2:
3:
4:
5:
ostream& operator<<(ostream& out, const CTeam& rop) {
	out << rop.getName() << " : " << rop.m_winsTotal << " " << rop.m_equalTotal << " " << rop.m_lostTotal
	    << " ( " << rop.getTotalPoints() << " Punkte ) Tore " << rop.m_goalsScoredTotal << ":" << rop.m_goalsReceivedTotal;
	return out;
}


Gruß
Marco
25.10.2017 22:08 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Kevin33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Aha ok . Dann rufe ich das nächste mal die Funktion auf ,hatte ich übrigens in meinen ersten Ansätzen auch.
Wie sieht es genau mit der anderen Methode aus?
Bekomme die Compiler Fehler net weg
25.10.2017 22:22
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Lass das "this->" einfach komplett weg. Richtig wäre sonst auch "this.", aber das ist unnötig.
Auch "rop->" ist falsch, da dann "rop.", was man allerdings nicht weg lassen kann.

Aber: Du kopierst das doch alles irgendwo her. Da kommt doch nichts von Dir selber. Erklär doch mal in eigenen Worten, was da überhaupt passieren soll. Außerdem hast Du bei uns ja die Aufgabe auch noch nicht gepostet, so weit ich das sehen kann zumindest.
25.10.2017 22:31 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Kevn33
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das ist eigentlich von mir. Mit this greift man auf das aktuelle Objekt und mit rop. auf das andere .

Soll ich top und this komplett weglassen oder wie?
25.10.2017 22:42
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Solche Dinge stehen in genug Büchern oder auch im Netz. Lies doch einfach mal irgendwo, wie man einen Vergleichsoperator für eine C++ Klasse überlädt, was es überhaupt soll und wie man was macht. Das macht doch echt überhaupt keinen Sinn, wenn ich denselben Kram hier gerade nochmal erkläre!
25.10.2017 23:27 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Seiten (5): « erste ... « vorherige 3 4 [5] Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Implementierungsproblem