Archiv verlassen und diese Seite im Standarddesign anzeigen : Thinking in C++ Kapitel 3 Aufgabe 12
Hallo,
ich stecke fest und bin offensichtlich zu doof um google zu bedienen. Jedenfalls konnte ich mit google meine Frage nicht klären. Die Aufgabe lautet:
Modify Boolean.cpp and Bitwise.cpp so they use the explicit operators (if your compiler is conformant to the C++ Standard it will support these)
Was zum Geier sind denn explicit operators? Bei google bekam ich nur Treffer zum Thema "explicit type conversion". Hier geht es aber um logische Vergleiche. etwa i == j oder i < j.
Kann mich einer aufklären?
Vielen Dank,
Marco
P.S.: Habe mir die Lösungen gekauft, dort steht aber leider zu der Aufgabe nur "left to the reader"... (Scheint SOOOO einfach zu sein....)
peschmae
12-11-2005, 07:52
Explicit operators
These are keywords for bitwise and logical operators. Non-U.S. programmers without keyboard characters like &, |, ^, and so on, were forced to use C’s horrible trigraphs, which were not only annoying to type, but obscure when reading. This is repaired in C++ with additional keywords:
Keyword
Meaning
and && (logical and)
or || (logical or)
not ! (logical NOT)
not_eq != (logical not-equivalent)
bitand & (bitwise and)
and_eq &= (bitwise and-assignment)
bitor | (bitwise or)
or_eq |= (bitwise or-assignment)
xor ^ (bitwise exclusive-or)
xor_eq ^= (bitwise exclusive-or-assignment)
compl ~ (ones complement)
If your compiler complies with Standard C++, it will support these keywords.
Wenn ich dich wäre würd ich mir die HTML Version runterladen, die kann man nämlich durchsuchen, falls du die nicht eh schon hast ;)
MfG Peschmä
Hi,
eh ja danke, hatte den Absatz nur auf die Trigraphs durchgelesen, da ist mir das wohl "durchgerutscht"...
Danke,
Marco
P.S: Ich habe 'ne gedruckte Version ohne Register (ziemlich übel, wa?!) Aber die HTML-Version werde ich mir gleich mal besorgen - wird's wohl auch auf BruceEckel.com geben, woll?
peschmae
13-11-2005, 09:36
Ja, genau. Das ist sowieso das Coole an Bruce Eckel, dass es die Bücher auch alle gratis als HTML gibt :)
Ich meine selbst wenn man ein Buch gekauft hat ists eh nie da wenn man es gerade benötigt um was nachzugucken (ausser man ist gerade intensiv am lernen) - da ist so ne HTML-Version sehr praktisch.
MfG Peschmä
Hi,
ich habe mir das Buch gekauft weil ich das Lesen am Bildschirm viel zu ermuedend finde. Ausserdem kann ich den PC nicht immer dabei haben... ;)
Gruss,
dra
Hi,
ich mache das so, dass ich mir das Buch kapitelweise - aktuell hat das 3. Kapitel - ausdrucke. Das Buch selbst hatte ich mir als pdf heruntergeladen. Ich lese auch lieber auf Papier als am Bildschirm. Habe mir nun auch das Inhaltsverzeichnis und das Stichwortverzeichnis ausgedruckt - hilft echt [:D] Die Lösungen habe ich mir für $ 12 heruntergeladen - manche Aufgaben sind mir nicht ganz klar, so wusste ich z.B. nicht, ob bei Aufgabe 2 des dritten Kapitels eine zusätzliche if-Abfrage neben den beiden for-Schleifen erlaubt ist. Laut Lösung war's dann wohl erlaubt... die Woche, in der ich über eine Lösung ohne zusätzliche if-Abfrage nachgedacht habe (vergeblich) war aber trotzdem sehr amüsant.
Super-Buch jedenfalls!
Bis dann,
Marco
Kenn mich mit explizieten operatoren null aus ... auch das 1.mal das ich sowas lese ....
aber man lernt ja dazu ^^
nu meine Frage:
bool btest = b1 && b2;
bool btest = b1 and b2;
musst ja dann genau das selbe sein ....
wenn das keywords sind, wieso matcht der compiler dann das nicht selber ??
oder warum muss ich fuer das andere keyword den operator selber ueberschreiben ....
template<class T>
bool operator &&(const T & t1,const T & t2)
....
template<class T>
bool operator and(const T & t1, const T & t2)
muessen ja nach der beschreibung 100% identisch sein, warum matcht der compiler dann die keywords nich einfach aufeinander ?
Wenn doch, macht obige Fragestellung ned viel sinn ^^
btw bei MSVC++ 6.0 sind es einfach makros ^^ Glaub ich versteh die fragestellung nich ganz ....
Ciao ...
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.