PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Thinking in C++ Kapitel 3 Aufgabe 12



Burger
12-11-2005, 01:30
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ä

Burger
12-11-2005, 23:45
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ä

dra
13-11-2005, 13:34
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

Burger
14-11-2005, 15:00
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

RHBaum
24-11-2005, 11:36
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 ...