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

Informatiker Board » Themengebiete » Praktische Informatik » Objekt Programmierung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
eulerscheZahl

Ungetestet, ich habe das jetzt einfach im Texteditor geschrieben:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
//warum nicht title1 und title2 als Namen? So finde ich das irreführend
const(CTitle operator+(const CTitle& duration,const CTitle& contentSize) {
	//wenn die Bitraten nicht übereinstimmen, wird linker Operand zurückgegeben
	if (duration.getBitRate() != contentSize.getBitRate()) return duration; //getBitRate musst du glaube ich noch implementieren
	
	//der Name ist <name1>, <name2>
	string newName = string(duration.getName()) + string(", ") + string(contentSize.getName());

	string newPerformer = duration.getPerformer();
	if (duration.getPerformer().compare(contentSize.getPerformer()) != 0) //strings sind verschieden
		newPerformer += string(", ") + string(contentSize.getPerformer());
	
	int length = duration.getDuration() + contentSize.getDuration();
	int size = duration.getContentsize() + contentSize.getContentsize();
	return new CTitle(size, length, newName, newPerformer, duration.getBitRate());
}

Du musst schon explizit angeben, welche Variable welchen Inhalt kriegen soll.
Windows

Was kann ich machen um das Problem zu beseitigen ?

Ich will jetzt einfach nur noch die Aufgabe abschließen großes Grinsen
eulerscheZahl

Nein.
Du schreibst in deinem Programm "man rechnet Plus, indem man Plus rechnet".
Ich habe nicht ausprobiert, was passiert. Entweder macht der Compiler das nicht mit oder das Programm ruft operator+ immer wieder auf, bis der Stack überläuft und das Programm abstürzt.
WindowsisBack

Zu deiner letzten Frage:
ret+= contentSize;
du willst den + Operator überladen, da kannst du ihn nicht schon verwenden.

Meinst du das ich das noch im Header definieren muss?
Windows

Bei dem oberen Code war es ein Flüchtigkeitsfehler .


Aber na gut wenn niemand helfen möchte dann macht es auch keinen Sinn.
eulerscheZahl

Du machst einem das Helfen aber auch nicht gerade einfach. Du haust Syntaxfehler rein, die du eigentlich selbst erkennen solltest.

Hier z.B.:
code:
1:
m_contentSize = lop.getContentsize()() + rop.getContentsize();

Du schreibst bei getContentsize zwei Klammerpaare. Das ist einfach falsch. Ich weiß nicht, ob du das nicht besser kannst oder einfach unkonzentriert warst. Aber in beiden Fällen ist es problematisch - beim Programmieren muss eben jedes Zeichen richtig sein, damit das Programm funktioniert.
Deine Aufgabe ist Operatorüberladung (vom Schwierigkeitsgrad für Fortgeschrittene), aber du bringst immer wieder solche Anfängerfehler. Bei den Lücken in den Grundlagen sind solche Aufgaben eben schwierig.

Zu deiner letzten Frage:
ret+= contentSize;
du willst den + Operator überladen, da kannst du ihn nicht schon verwenden.

Und hier ist zwar nicht wirklich viel los, aber hauptsächlich werden die Fragen von Karlito und mir beantwortet. Wir haben eben auch noch andere Dinge zu tun.
Windows

Es ist auch in diesem Forum nicht gerade so ,dass man gerade von Fragen überschwemmt wird?

großes Grinsen
Windows

Einen kleinen Teil habe ich schon ipmlementiert :

const(CTitle operator+(const CTitle& duration,const CTitle&contentSize){
CTitle ret(duration);
ret+= contentSize;

return ret;
}

Bei += habe ich Probleme ?
Windows

ja ich habe es ja probiert ,aber ich verstehe nicht so ganz wie ich den Fehler korriegieren kann smile
Karlito

Ich glaube das hat keinen Sinn. Wahrscheinlich ist es sinnvoller Du nimmst dir ein Buch und eine simplere Aufgabenstellung und wir klären hier Grundlagenfragen. Das hier läuft nur darauf hinaus, dass wir dir die Lösung zurechtbasteln, ohne dass Du es verstehst.

Wie auch schon euler sagte:
Zitat:
Original von eulerscheZahl
Es gibt da eine ziemlich große Lücke zwischen dem, was du kannst und dem, was du können sollst.


Gruß,

Karlito
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.