is Function
-
Hey Leute,
angenommen man betrachtet folgende Klasse
class Dog { /* ... */ int getAge() const; void setName(std::string name); bool isDackel() const; /* ... */ }; dann nennt man die Funkion "getAge()" für gewöhnlich getter-Funktion, die Funktion "setName()" setter-Funktion, wie aber bezeichnet man gewöhnlich die "isDackel()" Funktion, als is-Funktion? Gruß :)
-
Im Allgemeinen sind alles Memberfunktionen, im Speziellen ist es ein Praedikat.
-
Danke für deine Antwort
Werden diese Funktion der Form "isXXX()" in der Literatur echt Prädikate genannt? Ich arbeite gerade an einer Doku und muss über eine Reihe dieser "isXXX()" Funktionen schreiben und such nach einer passenden Bezeichnung für diese wie Beispielsweise "getter" bzw. "setter" bei Funktion der Form "getXXX()" bzw. "setXXX(...)"
Gruß
-
Beispiel: http://en.cppreference.com/w/cpp/algorithm/count
p - unary predicate which returns true for the required elements.
The signature of the predicate function should be equivalent to the following: [..]
echt Prädikate genannt
Das kommt von Praedikatenlogik und hat nichts mit Verben zu tun. http://de.wikipedia.org/wiki/Prädikat_(Logik)
Oder auf Englisch:
In mathematics, a predicate is commonly understood to be a boolean-valued function P: X→ {true, false}, called the predicate on X
-
Ich weiß nicht ob dies wirklich dasselbe ist
Die Funktion von dir scheint ein direkten Parameter zu haben, auf dem eine Bedingung geprüft wird, was einem mathematischen Prädikat recht nahe kommt.
Die "isXXX()" Funktionen die ich meine hingegen arbeiten auf dem gekapselten Objektzustand und bekommen keine zu prüfenden Argumente direkt übergeben.Gruß
-
In der ernstzunehmenden Literatur schreibt niemand von "getter" oder "setter", da das Bezeichnungen sind, die die Implementation der jeweiligen Funktion vorwegnehmen, was der Kapselung widerspricht. Üblich sind Bezeichnungen wie "mutator" und "observer", oder "command" und "query" (wobei man letztere Bezeichnungsweise nur verwenden sollte, wenn man tatsächlich command-query separation betreibt).
Kurz: Sch***egal, wie du die nennst. "Prädikat" ist gut.
-
MatheStein schrieb:
Die "isXXX()" Funktionen die ich meine hingegen arbeiten auf dem gekapselten Objektzustand und bekommen keine zu prüfenden Argumente direkt übergeben.
Das Objekt ist das Argument.
-
Ok Danke
-
MatheStein schrieb:
Die "isXXX()" Funktionen die ich meine hingegen arbeiten auf dem gekapselten Objektzustand und bekommen keine zu prüfenden Argumente direkt übergeben.
Jede Memberfunktion hat einen impliziten Parameter
this
. So auchisXXX
, du siehst ihn nur nicht.
-
MatheStein schrieb:
dann nennt man die Funkion "getAge()" für gewöhnlich getter-Funktion, die Funktion "setName()" setter-Funktion, wie aber bezeichnet man gewöhnlich die "isDackel()" Funktion, als is-Funktion?
Spontan fiel mir "Zustandsabfrage" ein, aber als offiziellen Begriff sehe ich das jetzt auch nicht.
Auch packe ich diese Zustandsanfragen in meinen Klassen unter die Rubrik "Getter/Setter", denn man bekommt ja letztendlich auch nur ein Bool und aufgrund der Fragestellung formuliert man isDackel() statt getDackelState().
Im Prinzip also nichts anderes als ein Getter.
Solltest Du aber noch einen Buzzword dafür finden, poste es doch bitte hier.