Das Doppelte in C++
-
Hallo zusammen,
in C++ ist ja vieles doppelt. Es fängt beim Namen an bis hin zu Operatoren und logischen Zeichen. Meine Frage ist, ob dies irgendeine tiefere Bedeutung beziehungsweise einen Sinn oder einen Vorteil hat.Vielen Dank für eure Hilfe
lg, freakC++
-
Was soll denn doppelt sein?

-
Ich bin mir jetzt nicht ganz sicher, was du meinst, aber nicht etwa, z.B logische Operatoren, wie
||oder&&.Das ist hier nur so, weil die Operatoren | und & bereits eine Bedeutung haben und die Zeichen halt am besten für das passen, was sie machen (logische und binäre und/oder Operationen).
Es hat also keinen mystischen Hintergrund. Beim Namen eigentlich das gleiche. C war schon vergeben, respektive ist C++ ein besseres C und lediglich C+ würde komisch aussehen.
(oder im programmiertechnischen halt nicht dasselbe bedeuten, wie C++ <- Inkrement von C).
-
Ich hatte es eher so verstanden, dass er meint, dass z.B. der Stern "*" je nach Kontext für verschiedene Operatoren steht (Dereferenzierung, Multiplikation). Die tiefere Bedeutung kann ich allerdings nicht erklären.
Und eine eventuelle Überladung verschärft die Sache noch...
-
man will halt alles möglichst kurz schreiben. vllt kommt irgentwann der $ operator
für das öffnen einer datei oder <>< für das erstellen einer neuen fisch-instanz.informatiker sind faul
deshalb wird viel doppelt belegt
-
Hm. Den Stern * oder das Kaufmännische Und & kann er nicht meinen, die sind nämlich jeweils dreifach belegt.

-
vllt kommt irgentwann der $ operator
Kommt nicht in die Tüte, behalt mal schön dein PHP-Kram!^^
-
Nexus schrieb:
Hm. Den Stern * oder das Kaufmännische Und & kann er nicht meinen, die sind nämlich jeweils dreifach belegt.

& genaugenommen sogar 4x
* als Zeigerdefinition.
* als Dereferenzierung.
* als Multiplikation.& als Referenzdefinition.
& als Adressoperator.
& als UND Operator.
&& als Vergleichsoperator.Hab ich was vergessen?
-
Einfall schrieb:
& als UND Operator.
&& als Vergleichsoperator.Na ja, eigentlich ist & != && ...

Mich interessiert eher, was freakC++ mit "logischen Zeichen" gemeint hat.
-
Ich hätte das eher so aufgefasst dass man "&&" oder auch "and" schreiben kann.
Oder die "obj.operator OP(arg)" vs. "obj OP arg" Schreibweise.Was er mit "fängt beim Namen an" meint weiss ich nicht.
-
Ich finde Threads, bei denen der Ersteller sich unklar ausdrückt und anschliessend ein Tag lang über mögliche Interpretationen spekuliert wird, immer wieder lustig.

Um gleich weiter zu machen:
Mit "fängt beim Namen an" bezog er sich wahrscheinlich auf den Namen der Programmiersprache, also C++. In dieser Hinsicht könnte er auf die "doppelten Operatoren"++,--,==,&&,||anspielen. Die sind so, weil doppelt halt cooler aussieht. :p
-
An manchen Stellen schreibt man auch dreimal ...
Foo::Foo(Foo const&)immer wieder lustig bei längeren Namen
-
Bashar schrieb:
An manchen Stellen schreibt man auch dreimal ...
Foo::Foo(Foo const&)immer wieder lustig bei längeren Namen
Wieso 3 mal? Ich komm nur auf 2...
-
Hallo zusammen,
also das ist wirklich sehr interessant was hier schon geschrieben worden ist. Also mit "fängt beim Namen an" meinte ich natürlich C++, also die beiden Pluszeichen. Mit logischen Zeichen meinte ich solche: && (und) || (oder) == (gleich). Ich habe mich halt einfach gefragt, ob dies eine tiefere Bedeutung hat. Man hätte ja auch einfach | oder & schreiben können, wobei natürlich jetzt die Bedeutung von & vergeben ist.Vielen Dank
lg, freakC++
-
freakC++ schrieb:
Man hätte ja auch einfach | oder & schreiben können, wobei natürlich jetzt die Bedeutung von & vergeben ist.
|
&
+
<=
etc
sind natuerlich auch in einfacher ausfuehrung vorhanden.
-
ja natürlich, aber mit volkommen anderer Bedeutung!!
== != =
-
Es gäbe da ja auch noch die Trigraphen, wenn dir das dann besser gefällt.

Aber für die, die es wirlich sprechender mögen, gibt es ja noch
and, or, xor, bitor, compl, bitand, and_eq, or_eq, xor_eq, notundnot_eq
-
freakC++ schrieb:
ja natürlich, aber mit volkommen anderer Bedeutung!!
Waere ja witzlos wenn es die selbe bedeutung haette, oder?
wozu == schreiben wenn = das selbe macht...?
-
Shade Of Mine schrieb:
Bashar schrieb:
Foo::Foo(Foo const&)Wieso 3 mal? Ich komm nur auf 2...
Ich meinte nicht die Doppelpunkte, sondern das, was da dreimal steht.
Edit: sorry für's ausrasten
-
Bashar schrieb:
Shade Of Mine schrieb:
Bashar schrieb:
Foo::Foo(Foo const&)Wieso 3 mal? Ich komm nur auf 2...
Ich meinte nicht die Doppelpunkte, sondern das, was da dreimal steht

ah, stimmt.
dachte du meinst das ganze konstrukt.
einmal im header und einmal in der implementierung...aber stimmt, den Klassennamen schreibt man extrem oft (zum glueck gibts ja auto vervollstaendigung fuer sowas)