PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] Indexoperator [] ?


Durcairion
2005-11-17, 11:12:57
Hey, ich hab im Moment ein Problem mit dem Verständnis wie man einen Indexoperator überläd bzw halt anwendet.

Und zwar habe ich folgendes Programm: http://nopaste.php-q.net/172830

Es rechnet eine zu große Zeit um sprich 1 std 2 min 61 sek ändert s zu 1 std 3 min 1 sek.

Nun soll ich einen Indexoperator einfügen, der bei "h" die Stunden ausgibt, bei "m" die Minuten und bei "s" die Sekunden.

Also bei ['h'] als Operator soll es die stunden ausgeben.

Leider komme ich eifnach nicht voran :/

Kann mir jemand sagen wie ich das Programm verändern/erweitern muss, das es im print(); anstatt über stunden, minuten und sekunden über den Operator die Zeit ausgibt?

Vielen Dank im Voraus.

Coda
2005-11-17, 11:20:23
void operator[] (char x) {
switch(x) {
case 'h':
// Stunden ausgeben
break;
case 'm':
// Minuten ausgeben
break;
case 's':
// Sekunden ausgeben
break;
}
}

Durcairion
2005-11-17, 11:24:28
Ja, soweit hatte ich es auch schonmal ... aber ich muss doch irgendwie einen Zeiger/Referenz auf das Objekt übergeben an die Print damit ich es dann mit xx['h'] aufrufen kann oder wie rufe ich es dann in der print selbst auf?

Coda
2005-11-17, 11:26:17
this->operator[]('h') oder (*this)['h']

Ich weiß zwar nicht was du damit bezwecken willst es so zu machen, aber so geht es.

Durcairion
2005-11-17, 11:32:17
this->operator[]('h') oder (*this)['h']

Ich weiß zwar nicht was du damit bezwecken willst es so zu machen, aber so geht es.

Ist ne Pflichtaufgabe im Programmierlabor *g* :)

Danke es geht ... langsam komm ich auch dahinter :)