Das Doppelte in C++



  • 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, not und not_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)



  • freakC++ schrieb:

    ja natürlich, aber mit volkommen anderer Bedeutung!!

    == != =

    Und was ist jetzt deine Frage?
    Es werden andere Zeichenfolgen verwendet, weil sie für was anderes stehen. Ist doch logisch, oder?
    Einfach = & | hätte man eben NICHT nehmen können, da es die drei in der "einfachen" Variante schon gibt.
    | ist was anderes als || - die einfache Variante ist ein "bitwise or", die doppelte Variante ist ein "logical or". Wichtiger unterschied.
    1 | 2 ergibt 3, 1 || 2 ergibt 1.



  • Oder geht es dir grundsätzlich darum, wieso man gewisse Operatoren aus mehreren Zeichen zusammensetzt, anstatt neue zu definieren, zum Beispiel @, § oder ¬?

    Erstens sind die zusammengesetzten Operatoren einigermassen sinnvoll zusammengesetzt. Also ++ ist ähnlich wie +, && ist die logische Variante des bitweisen &. Zudem braucht man weniger Zeichen, was bei einem beschränkten Zeichensatz von Vorteil ist (die momentanen Operatorzeichen gibts auf vielen Tastaturen).

    Drittens sind gewisse Operatoren relativ aussagekräftig allein durch ihr Aussehen. Denkt man dabei an die Shift- (oder Stream-)Operatoren. Oder der Member-Dereferenzierungsoperator ->. Oder ==. Das = ist eben schon besetzt - es ist doch naheliegend, dass man für einen Vergleich == wählt und irgendeinen kryptischen Operator mit einem Zeichen, zum Beispiel ™, oder?


Anmelden zum Antworten