Forum: PC-Programmierung C++: Benennung von Updates


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,

wenn man mit zeitveränderlichen Daten arbeitet, hat man ja öfter Update 
der Form:
1
delta = this - last;
oder
1
delta = new - this;
Unter Matlab, Simulink und C macht das keine Probleme. Unter C++ sind 
davon zwei reservierte Schlüsselwörter. Wie nennt man diese Idiome 
üblicherweise unter C++? (Ich finde gerade keinen 
Regelungstechnik-Quellcode in C++, wo man soetwas abgucken kann.)

Beitrag #6791419 wurde von einem Moderator gelöscht.
von Johannes S. (Gast)


Lesenswert?

Wenn es um Zeit geht, dann kann man es auch ausschreiben: currentTime, 
lastTime, diffTime, durationXY.
Noch schöner mit chrono in C++ weil dann gleich die Zeiteinheit 
berücksichtigt wird.

von Daniel F. (foxi_the_daywalker)


Lesenswert?

Hi,

ja,
"new" ist ein Schlüsselwort bzw. ein Operator und
"this" ist die Bezeichnung für den Zeiger auf das Objekt der Klasse in 
der man sich gerade befindet (oder so ähnlich).

Ob man etwas in Büchern zu der typischen Schreibweise von Differenzen 
bzw. Differenzwerten finden, weiß ich nicht.

Ich schreibe meistens so etwas wie:
1
auto const diff = current_value - last_value;
oder auch gerne
1
auto const diff = current - last;
wenn es sich um aufsteigende Werte handelt.

Gruß
Daniel

von BeBe (Gast)


Lesenswert?

Also bei mir lautete ein aktueller Wert noch in keiner 
Programmiersprache "this". Ist so exakt in der Beschreibung wie "xxx".
Auch "new" ist mir zu schwammig.

Wie wäre z.B.
1
delta = currentTemperature - previousTemperature;

von Walter T. (nicolas)


Lesenswert?

Gefühlt habe ich "current" immer als Intervall zwischen "this" und 
"last" genutzt, aber das ist wohl einfach nur eine Angewohnheit.

Wahrscheinlich ist "current - last" eine gute Kombination. Ich muß mich 
mal an den Gedanken gewöhnen. Für den Muttersprachler wäre 
wahrscheinlich "current - previous" geläufiger.

: Bearbeitet durch User
von BeBe (Gast)


Lesenswert?

Gewöhnungsbedürftig wird es nur bei ein paar Größen wie etwa 
"CurrentCurrent" :-)

von Walter T. (nicolas)


Lesenswert?

Deswegen macht man die Filterung auf "digit"-Ebene und rechnet erst in 
der Anzeige auf Strom um.

von Rolf M. (rmagnus)


Lesenswert?

Walter T. schrieb:
> wenn man mit zeitveränderlichen Daten arbeitet, hat man ja öfter Update
> der Form:
> delta = this - last;
> oder
> delta = new - this;
> Unter Matlab, Simulink und C macht das keine Probleme. Unter C++ sind
> davon zwei reservierte Schlüsselwörter. Wie nennt man diese Idiome
> üblicherweise unter C++?

Man benennt sie mit einem bezeichnenden Namen. "last" ist übersetzt 
"leztes", aber das letzte WOVON? Wenn es sich beispielsweise um eine 
Geschwindigkeit handelt, sind es eben "lastSpeed" oder "previousSpeed" 
und "currentSpeed" oder einfach "speed". Damit ergeben sich auch keine 
Probleme mit Schlüsselwörtern, selbst wenn du es newSpeed oder thisSpeed 
nennen willst.
"this" würde ich aber sowieso nicht nehmen, weil das Wort keinen 
zeitlichen Bezug angibt.

: Bearbeitet durch User
von Zeno (Gast)


Lesenswert?

Man kann aber auch aus allem ein Problem machen. Namen sind doch 
letzendlich Schall und Rauch.

Rolf hat allerdings einen guten Vorschlag gemacht und so ähnlich mache 
ich das auch.  Wenn's etwas allgemeiner sein soll, dann ersetzte in 
Rolf's Beispiel das Speed durch Value, also z.B. lastValue.

Offensichtlich will der TO Kompatibilität zu altem/vorhandenem Quellcode 
haben und ähnliche Bezeichner benutzen.
Soweit ich mich entsinne ist auch C++ casesensitive, was spricht also 
dagegen den Variablennamen anders als das C++ Schlüsselwort zu 
schreiben, z.B. NEW, THIS, LAST etc. etc.. Der Phantasie sind da ja 
keine Grenzen gesetzt, solange man nicht ein Schlüsselwort der 
Programmiersprache benutzt. Ob's am Ende schön ist ist eine andere 
Sache.

von DPA (Gast)


Lesenswert?

now - previous

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.