C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Buchempfehlung zur C++-Nutzung gesucht
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Tibor Pausz
Guest





PostPosted: Sun Jan 14, 2007 1:52 am    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote



Stefan Ram schrieb:
Quote:
Das Statische ist ja im allgemeinen auch schneller (zur Laufzeit).

Es ist vorallem sicherer, da Typfehler meist schon zum Compilezeitpunkt
abgefangen werden. Ich sehe da kein Widerspruch zu OOP, eher ist das ein
Thema von strenger Typisierung vs. lascher Typisierung.
Back to top
Michael Piefel
Guest





PostPosted: Mon Jan 15, 2007 12:26 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote



Am Sat, 13 Jan 2007 17:55:41 +0000 schrieb Stefan Ram:
Quote:
Der Begriff »objektorientierte Programmierung« wurde 1967 von
Alan Kay geprägt

Bei allem Respekt, aber das ist Unfug. Alan Kay mag sich für den Erfinder
von allem Möglichen halten, er mag Konzepte entwickelt und Dinge benannt
haben, aber wenn heutzutage knapp 100% der Informatiker OOP mit ein paar
anderen Begriffen (wie Klasse oder Polymorphie) in Verbindung bringen,
dann ist das jetzt halt OOP. Kay muss sich dann einen neuen Namen
ausdenken.

--
|=| Michael Piefel
|=| Humboldt-Universität zu Berlin
Back to top
Jürgen Herz
Guest





PostPosted: Mon Jan 15, 2007 5:14 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote



Stefan Ram wrote:

Quote:
Jürgen Herz <juergen (AT) jherz (DOT) redirectme.net> writes:
Mein Satz war vielleicht nur etwas hingeworfen, was ich sagen
wollte ist, daß sich das Buch eher auf die Objektorientierte
Programmierung als auf die Sprache beziehen sollte. Also nicht
wie eine Klasse codiert und abgeleitet wird, sondern wann und
warum.
Vielleicht hast Du doch noch eine konkrete Empfehlung für mich.

Tatsächlich wird so etwas in Büchern zum Entwurf behandelt,
wobei auch Entwurfsmuster vorkommen. Da gibt es etwa das Buch
»Applying UML and Patterns« von Craig Larman, das aber
Beispiele mit Java behandelt.

Allerdings ist weder Java noch C++ eine objektorientierte
Programmiersprache - in beiden Sprachen stehen ja weder
numerische Literale noch Blöcke für Objekte, wie in
objektorientierten Programmiersprachen.

Passt objektbasiert dann besser?

Quote:
Wenn Du also objektorientierte Programmierung erlernen willst,
dann wäre Smalltalk oder Squeak geiegnet.

Klassen gehören übrigens nicht zur objektorientierten
Programmierung - bis vor kurzem gab es in JavaScript zwar
Objekte, aber keine Klassen, und auch noch andere Sprachen mit
Objekten kommen enthalten keine Klassen.

Das soll nicht heißen, daß C++ für bestimmte Anwendungen
schlecht geeignet wäre. Nur soll man eben nicht glauben, daß
man mit dieser Sprache objektorientiert programmieren würde.

Na das ist ja auch mal interessant zu lesen.
In der Tat wäre "richtige" objektorientierte Programmierung interessant und
Smalltalk interessiert mich schon lange. Aber mein Ziel ist C++ (weil es in
der Arbeitswelt sehr verbreitet ist). Allerdings eben nicht nur als ein C
mit den tollen Kommentarzeichen (//), sondern mit dem was C++ ausmacht und
zwar sinnvoll eingesetzt.
Ob das nun objektorientiert ist oder nicht, ist mir dann erst mal schnurz.

Gruß,
Jürgen
Back to top
Jürgen Herz
Guest





PostPosted: Mon Jan 15, 2007 5:52 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Hallo!

Im Laufe dieses Threads habe ich ja jetzt gelernt, daß C++ und
Objektorientierung nicht unbedingt zusammenpassen.

Ich bedanke mich soweit mal für eure bisherigen Empfehlungen (auch die für
ein Uni-Skript) und werde sie im Buchladen auch alle ansehen.

Allerdings versuche ich es jetzt nochmal etwas anders und frage nach einem
Buch zum praktischen Einsatz von C++. Also meine Kernfrage etwas
umformuliert: Wie arbeite ich mit C++ am Besten und wende das was in C++
gegenüber C anders ist am Besten an? Das "Beste" ist sicherlich eine
strittige Frage, aber deshalb frage ich ja in einer Usegroup und nicht nur
einen einzelnen.

Grüße,
Jürgen
Back to top
Stefan Ram
Guest





PostPosted: Tue Jan 16, 2007 8:30 am    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Jürgen Herz <juergen (AT) jherz (DOT) redirectme.net> writes:
Quote:
Passt objektbasiert dann besser?

Der Begriff ist auch nicht ganz klar definiert. Wenn man die Erklärung

»A somehow limited version of object-oriented programming«

http://en.wikipedia.org/wiki/Object-based_programming

verwendet, dann wäre es tatsächlich passender.
Back to top
Markus Wichmann
Guest





PostPosted: Tue Jan 16, 2007 10:25 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Jürgen Herz schrieb:
Quote:

Passt objektbasiert dann besser?


Ich würde nicht sagen, dass C++ nicht Objekt-orientiert ist. Ich würde
eher sagen, dass C++ nicht /streng/ Objekt-orientiert ist: C++ kann noch
mehr als das. Zum Beispiel eben einfache Datentypen wie int. Natürlich
muss man auch sehen, dass man z.B. unter Microsoft.NET Sachen machen
kann wie "5.ToStr()", aber wenn man das nicht kann, dreht sich die Welt
auch noch in Frieden weiter.

Und nebenbei stellst du mit Objekt-basiert C++ auf die gleiche Stufe wie
Visual Basic, und _da_ liegt dann doch ein gewaltiger Unterschied
dazwischen: Visual Basic ist Objekt-basiert, weil man keine eigenen
Klassen definieren kann. Man kann das natürlich herunterreden (Manche
Programmierer nennen es nur objektbasiert, weil es nicht alle Konzepte
der objektorientierten Programmierung beherrscht.) So ähnlich stand es
in irgendeinem Basic-Buch. "nicht alle Konzepte". Ich würde eher sagen
"so gut wie kein Konzept". Es geht ja nix, wenn man keine eigenen
Klassen machen, dann geht keine Vererbung, von Interfaces ganz zu
schweigen, und über abstrakte Klassen und so rede ich erst gar nicht.
Das einzige, was geht, ist das Übernehmen von vorgefertigten Objekten
aus dem Hause M$.

HTH,
Markus

P.S.: Was irgendein Typ 1967 dachte, was objektorientiert ist,
interessiert mich 2007, also 40 Jahre später, nicht mehr wirklich, zumal
seine Thesen schon seit Längerem überholt sind. Primitive Datentypen
machen nunmal C++ aus. Ohne geht es gar nicht: Irgendwo brauche ich
nunmal eine _Zahl_ ohne Klasse drumrum.
--
Was haben eigentlich alle gegen Beamte? Die tun doch nichts.
Homepage: http://wichi.wi.funpic.de (momentan noch etwas trocken)
Root-Zertifikat: http://wichi.wi.funpic.de/certs/ca/ca.crt
Mail-Zertifikat: http://wichi.wi.funpic.de/certs/gmx/cert.pem
Back to top
Andre Weihe
Guest





PostPosted: Tue Jan 16, 2007 11:20 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Jürgen Herz wrote:

Quote:
Hallo!

Im Laufe dieses Threads habe ich ja jetzt gelernt, daß C++ und
Objektorientierung nicht unbedingt zusammenpassen.

Pfff, Evangelisten der "reinen" OO-Lehre..
C++ war schon immer eine hybride Sprache, was wohl mit ein Grund war
warum sie sich in der Praxis behaupten konnte.
Selbst in einer Sprache die keine OO-Mittel anbietet kann man OO
programmieren wenn man will (was nicht heißen soll, das es unbedingt
Sinn macht).

Quote:
Ich bedanke mich soweit mal für eure bisherigen Empfehlungen (auch die für
ein Uni-Skript) und werde sie im Buchladen auch alle ansehen.

Allerdings versuche ich es jetzt nochmal etwas anders und frage nach einem
Buch zum praktischen Einsatz von C++. Also meine Kernfrage etwas
umformuliert: Wie arbeite ich mit C++ am Besten und wende das was in C++
gegenüber C anders ist am Besten an? Das "Beste" ist sicherlich eine
strittige Frage, aber deshalb frage ich ja in einer Usegroup und nicht nur
einen einzelnen.

Empfehlungen aus meinem Bücherregal zu C++:

Bruce Eckel: Thinking in C++ Band 1+2
<http://mindview.net/Books/TICPP/ThinkingInCPP2e.html>
Einführung aber auch Anleitung zum guten Umgang mit C++.
Auch mit Hinweisen vom Autor wie er meint wie gutes OO-Design mit C++
aussehen sollte.
Kostenlos von der Webseite downloadbar oder gedruckt im Buchhandel.

Scott Meyer: Effektiv C++ programmieren / Mehr Effektiv C++
programmieren
<http://www.amazon.de/Effektiv-C%2B%2B-programmieren-Scott-Meyers/dp/3827322979/sr=1-1/qid=1168958438/ref=sr_1_1/028-3413279-2866101?ie=UTF8&s=books>
<http://www.amazon.de/Effektiv-programmieren-Verbesserung-Programme-Entwürfe/dp/3827312752/sr=1-2/qid=1168958438/ref=sr_1_2/028-3413279-2866101?ie=UTF8&s=books>
Klassiker zur besseren Programmierung und Entwurf mit C++.

John Lakos: Large Scale C++ Software Design
<http://www.amazon.com/Large-Scale-Software-Design-John-Lakos/dp/0201633620/sr=1-1/qid=1168958995/ref=pd_bbs_sr_1/104-6099889-8628701?ie=UTF8&s=books>
Dickes Buch (könnte dichter geschrieben sein) das einige Punkte
enthält die heute mit modernen Compilern obsolet und einiges was eh´
jeder gute Entwickler so machen sollte wie dort beschrieben oder was
wirklich nur in ganz großen Projekten volle Wirkung zeigt.
Enthält aber auch immer noch viele Wahrheiten und Best Practices, auch
in Designfragen.


(Nicht-)Empfehlungen nicht aus meinem Bücheregal zu C++:

Andrei Alexandrescu: Modernes C++ Design. Generische Programmierung
und Entwurfsmuster angewendet.
<http://www.amazon.de/Modernes-Generische-Programmierung-Entwurfsmuster-angewendet/dp/3826613473/ref=pd_sim_b_2/028-3413279-2866101>
Ich hab´s nicht (gelesen), aber scheint die Bibel in Sachen Benutzung
von Templates und generischer Programmierung zu sein.
Nichts für Anfänger allerdings.

Was ich noch empfehlen wollte weil "Algorithmen" bei mir im Regal
steht und ich es mir schon immer kaufen wollte:
Robert Sedgewick: Algorithmen in C++
<http://www.amazon.de/Algorithmen-C%2B%2B-Teil-Robert-Sedgewick/dp/3827370264/sr=1-3/qid=1168958633/ref=sr_1_3/028-3413279-2866101?ie=UTF8&s=books>
Nach Lesen der Leser-Rezensionen spar ich mir das Buch.
Objektorientierung und effektiven Gebrauch von C++ wird man darin wohl
eher nicht finden.
In "Algorithmen in Java" sollen die Programmbeispiele doch echt auch
mal Objekte benutzen.
Mal sehen ob/wann/was uns ein/in "Algortihmen in C#" erwartet Wink SCNR


Empfehlungen zu OO aus meinem Bücherregal:

Grady Booch: Objektorientierte Analyse und Design
<http://www.amazon.de/Objektorientierte-Analyse-Design-praktischen-Anwendungsbeispielen/dp/3893196730/sr=1-3/qid=1168965990/ref=sr_1_3/028-3413279-2866101?ie=UTF8&s=books>
Standardwerk. Wurde ja im Thread schon erwähnt.
Enthält Beispiele in C++ (tss, tss eine Koryphäe wie Booch benutzt für
Beispiele nicht Simula oder Smalltalk, wie kann er nur Wink SCNR²).
Leider auch sehr dick und nicht unbedingt Anfängerfreundlich.

Bernd Oestereich: Analyse und Design mit UML 2.1
(meine olle Version heißt noch "Objektorientierte Softwareentwicklung"
<http://www.amazon.de/Analyse-Design-mit-UML-2-1/dp/3486579266/sr=1-1/qid=1168966792/ref=sr_1_1/028-3413279-2866101?ie=UTF8&s=books>
Ich halte es für eine sehr gute Einführung in OO-Analyse und Design.
Einige Rezensenten bei Amazon scheinen da anderer Meinung zu sein.
Wie bei allen Büchern am besten selber erst mal reingucken.

Meilir Page-Jones: Fundamentals of Object-Oriented Design in UML
<http://www.amazon.com/Fundamentals-Object-Oriented-Design-Meilir-Page-Jones/dp/020169946X/sr=1-5/qid=1168967270/ref=sr_1_5/104-6099889-8628701?ie=UTF8&s=books>
Einführung in OO-Design.
Mehr Grundlagen und weniger UML als bei Oestereich.
Ich denke es führt sehr gut in OO ein wenn man Englisch kann und sich
nicht an Pseudocode stört (hier und da wird auch auf
Eigenheiten/Besonderheiten von konkreten Programmiersprachen
eingegangen).

Quote:
Grüße,
Jürgen

HTH

André
--
"With Fortran and the languages that followed, programmers finally had
the tools they needed to get into really serious trouble."
- http://www.americanscientist.org/Issues/Comsci03/03-03Hayes.html
Back to top
Georg Maaß
Guest





PostPosted: Wed Jan 17, 2007 4:15 am    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Markus Wichmann wrote:

Quote:
P.S.: Was irgendein Typ 1967 dachte, was objektorientiert ist,
interessiert mich 2007, also 40 Jahre später, nicht mehr wirklich, zumal
seine Thesen schon seit Längerem überholt sind. Primitive Datentypen
machen nunmal C++ aus. Ohne geht es gar nicht: Irgendwo brauche ich
nunmal eine _Zahl_ ohne Klasse drumrum.

Wo bitte hast Du in einem Computer auch nur eine einzige Zahl? Ich sehe
keine Zahlen, sondern Bitmuster. Stelle mal die Zahl 1/3 ohne ein Objekt
im Computer korrekt dar. Rechne damit ohne Rundungsfehler. In JavaScript
sind alles mehr oder wenige Objekte. Was kein Objekt ist, wird oft
automatisch in ein Hüllobjekt verpackt.

1 .toString();

Wie sieht die 1 im Speicher aus? Genau wie ein int in C++ auch. Trotzdem
kann ich selbst auf das numerische Literal Number-Methoden anwenden. Das
stünde auch C++ gut an, wenn es zu den primitiven Typen auch
entsprechende implizite Klassen gäbe, von denen man erben kann, um
semantische oder geringfügig funktionale Varianten der Primitive zu
schaffen. Ich denke dabei z.B. an Maßzahlen, die einfach Zahlen sind mit
Cast-Opeatoren zu anderen Zahlen, in denen dann die Skalierung geregelt ist.

Da ist durchaus noch Entwicklungspotential für die Sprache.
Back to top
Tibor Pausz
Guest





PostPosted: Wed Jan 17, 2007 4:10 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Andre Weihe schrieb:

Quote:
Was ich noch empfehlen wollte weil "Algorithmen" bei mir im Regal
steht und ich es mir schon immer kaufen wollte:
Robert Sedgewick: Algorithmen in C++

Zum Thema Algorithmen gibt es zwei wirklich empfehlenswerte Bücher: "The
Art of Computer Programming, D. E. Knuth" und "Algorithms, Thomas H.
Cormen". Sedgewick ist leider arg dürftig, egal ich welcher Sprache die
Problemlösungen formuliert sind, da kann man in der Regel gleich eine
fertige Bibliothek benutzen.
Back to top
Bob Hairgrove
Guest





PostPosted: Wed Jan 17, 2007 8:14 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

On Wed, 17 Jan 2007 11:10:52 +0100, Tibor Pausz

<pausz (AT) stud (DOT) uni-frankfurt.de> wrote:



Quote:
Andre Weihe schrieb:



Was ich noch empfehlen wollte weil "Algorithmen" bei mir im Regal

steht und ich es mir schon immer kaufen wollte:

Robert Sedgewick: Algorithmen in C++



Zum Thema Algorithmen gibt es zwei wirklich empfehlenswerte Bücher:
"The


Quote:
Art of Computer Programming, D. E. Knuth" und "Algorithms, Thomas H.

Cormen". Sedgewick ist leider arg dürftig, egal ich welcher Sprache
die


Quote:
Problemlösungen formuliert sind, da kann man in der Regel gleich eine

fertige Bibliothek benutzen.



Niklaus Wirth: "Algorithmen und Datenstrukturen" (3. Ausgabe 1983,

B.G. Teubner/Stuttgart) wäre noch zu erwähnen. Da es aber in 1975 (1.

Ausgabe) geschrieben wurde, gibt es natürlich keine Beispiele in C++

(und übrigens auch nicht bei Donald Knuth).



--

Bob Hairgrove

NoSpamPlease (AT) Home (DOT) com
Back to top
Stefan Ram
Guest





PostPosted: Wed Jan 17, 2007 9:35 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Georg Maaß <georg (AT) bioshop (DOT) de> writes:
Quote:
Wo bitte hast Du in einem Computer auch nur eine einzige Zahl?

Dann kann man fragen, wo man überhaupt jemals ein Zahl »hat«.

Wenn man »2« auf einen Zettel schreibt, ist da ja auch keine
Zahl, sondern nur Tinte.

Quote:
Stelle mal die Zahl 1/3 ohne ein Objekt im Computer korrekt dar.

Diese Zahl kann man beispielsweise durch das Bitmuster

1

darstellen (wenn man einen Code verwendet, in dem das
Bitmuster »1« für die Zahl 1/3 steht.)

Quote:
Rechne damit ohne Rundungsfehler.

Das kann man auf einem Computer soweit implementieren,
wie es Menschen auch ohne Computer machen können.
Back to top
Markus Wichmann
Guest





PostPosted: Wed Jan 17, 2007 11:15 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Georg Maaß schrieb:
Quote:
Markus Wichmann wrote:

P.S.: Was irgendein Typ 1967 dachte, was objektorientiert ist,
interessiert mich 2007, also 40 Jahre später, nicht mehr wirklich, zumal
seine Thesen schon seit Längerem überholt sind. Primitive Datentypen
machen nunmal C++ aus. Ohne geht es gar nicht: Irgendwo brauche ich
nunmal eine _Zahl_ ohne Klasse drumrum.

Wo bitte hast Du in einem Computer auch nur eine einzige Zahl? Ich sehe
keine Zahlen, sondern Bitmuster.

Bitmuster dürften irgendwie das gleiche sein, wie Zahlen da Bitmuster
zusammengesetzt Zahlen im Dualzahlsystem ergeben. Das kann man leicht
nach Hexadezimal umwandeln. Und mir davon vorhalten zu wollen, es
handele sich nicht um Zahlen... naja, die Mathematiker wird's freuen.

Quote:
Stelle mal die Zahl 1/3 ohne ein Objekt
im Computer korrekt dar.

Bitte nicht über die Nomenklatur gehen und mich aus dem Hinterhalt
erschießen. Ich schrub etwas von _Klasse_, nicht Objekt. Objekt hat
nämlich in C (und damit wohl auch in C++, auch wenn ich gerade den
Standard nicht zur Hand habe) die Definition, ein in sich
abgeschlossener Teilbereich des Speichers zu sein (AFAIK). Und das geht
in nun wirklich leicht: Ein Drittel ist der Quotient aus 1 und 3 also
kann man ganz leicht im Speicher eine unendlich genaue Abbildung von
einem Drittel machen:

0b0000000100000011

Und ich definiere, dass von dieser Zahl das erste Byte den Zähler und
das zweite den Nenner benennt. Also geht diese Darstellung nur auf
Rechnern, die für ein Byte acht Bit veranschlagen.

Quote:
Rechne damit ohne Rundungsfehler.

Klar, bei jedem Zugriff neu berechnen. Per FPU. Ist zwar alles andere
als perfomant, sollte aber seinen Job tun (sofern man mannsgenug ist,
einen Teil seiner Arbeit an Intel abzutreten).

Quote:
In JavaScript
sind alles mehr oder wenige Objekte. Was kein Objekt ist, wird oft
automatisch in ein Hüllobjekt verpackt.


Und das hat mit C++ genau wieviel zu tun?

Quote:
1 .toString();

Wie sieht die 1 im Speicher aus? Genau wie ein int in C++ auch.

Nicht unbedingt: wie sieht eine Instanz von

class Integer
{
private: int* data;
public:
Integer()
{
this.data = new int;
}
Integer(int x)
{
this.data = new int;
*(this.data) = x;
}
Integer(Integer& x)
{
this.data = new int;
*(this.data) = *(x.data);
}
std::string ToStr()
{
std::string buffer;
sprintf(buffer.c_str(), "%i", *(this.data));
return buffer;
}
~Integer()
{
delete this.data;
}
Integer& operator=(Integer& x)
{
*(this.data) = *(x.data);
}
Integer& operator=(int x)
{
*(this.data) = x;
}
}

im Speicher aus?

Quote:
Trotzdem
kann ich selbst auf das numerische Literal Number-Methoden anwenden. Das
stünde auch C++ gut an, wenn es zu den primitiven Typen auch
entsprechende implizite Klassen gäbe, von denen man erben kann, um
semantische oder geringfügig funktionale Varianten der Primitive zu
schaffen.

Das gibt es in C++ nicht, aber man kann es sich doch selbst basteln.

Quote:
Ich denke dabei z.B. an Maßzahlen, die einfach Zahlen sind mit
Cast-Opeatoren zu anderen Zahlen, in denen dann die Skalierung geregelt ist.


Jedem das seine: Implementiere es doch einfach.

Quote:
Da ist durchaus noch Entwicklungspotential für die Sprache.

Dann schreibe eine neue Sprache, nenne sie meinetwegen C+=2 - aber
erwarte nicht, das irgendjemand sie benutzt.
Alle Fragen geklärt?
Tschö,
Markus
--
Was haben eigentlich alle gegen Beamte? Die tun doch nichts.
Homepage: http://wichi.wi.funpic.de (momentan noch etwas trocken)
Root-Zertifikat: http://wichi.wi.funpic.de/certs/ca/ca.crt
Mail-Zertifikat: http://wichi.wi.funpic.de/certs/gmx/cert.pem
Back to top
Stefan Reuther
Guest





PostPosted: Wed Jan 17, 2007 11:40 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Georg Maaß wrote:
Quote:
Markus Wichmann wrote:
P.S.: Was irgendein Typ 1967 dachte, was objektorientiert ist,
interessiert mich 2007, also 40 Jahre später, nicht mehr wirklich, zumal
seine Thesen schon seit Längerem überholt sind. Primitive Datentypen
machen nunmal C++ aus. Ohne geht es gar nicht: Irgendwo brauche ich
nunmal eine _Zahl_ ohne Klasse drumrum.

Wo bitte hast Du in einem Computer auch nur eine einzige Zahl? Ich sehe
keine Zahlen, sondern Bitmuster. Stelle mal die Zahl 1/3 ohne ein Objekt
im Computer korrekt dar. Rechne damit ohne Rundungsfehler. In JavaScript
sind alles mehr oder wenige Objekte. Was kein Objekt ist, wird oft
automatisch in ein Hüllobjekt verpackt.

1 .toString();

Wie sieht die 1 im Speicher aus? Genau wie ein int in C++ auch. Trotzdem
kann ich selbst auf das numerische Literal Number-Methoden anwenden.

Du haust hier zwei Dinge durcheinander.

Da wäre einmal das 'int'-Objekt. Sein natürlicher Lebensraum ist unter
anderem das Prozessor-Register, in dem er aufgrund seiner geringen
Komplexität (eben einfach nur eine Zahl) bequem Platz findet.
Konzeptionell wäre es nicht mal schwierig, darauf Methoden anzuwenden.
C++ gibt dir aber eben keine Möglichkeiten, welche zu definieren, so
dass du dich mit den vordefinierten Operatoren begnügen musst.

Dann wäre da noch das, was Java 'Integer' nennt. Das enthält neben der
Nutzinformation "Zahl" noch irgendwelche Typinformationen (üblicherweise
vtbl-Zeiger). Damit findet es z.B. nicht mehr in einem Prozessorregister
Platz, und ist damit gerade mal halb so effizient wie ein nackiger
'int'. So eine Klasse gibt es in Standard-C++ nicht vordefiniert, das
lässt sich aber in Nullkommanix nachholen.

Die OOP-Puristen verteufeln nun 'int', weil das kein late binding
unterstützt, und weil man ja in die Repräsentation reinkucken kann, und
das ist pfui-bäh. Nur, wird mein Programm *irgendwie* besser, wenn ich
anstatt mit ganzen Zahlen rumzurechnen irgendwelche opaken Objekte durch
die Gegend schiebe?

Natürlich könnte jetzt jemand kontern und sagen: du kannst aber deine
Integer nicht durch eine Bignum-Klasse ersetzen. Natürlich kann ich das
nicht, wenn ich 'int' direkt hingeschrieben habe. Aber ich kann meinen
Code problemlos über den Datentyp parametrisieren. Entweder (the Java
way) über eine Factory-Klasse bzw. eine abstrakte Number-Klasse, oder
(the C++ way) über ein Template. Der C++-Weg ist sogar im Allgemeinen
schneller, weil eben wieder direkt die rechenfreudigen ints in die
Prozessorregister gepackt werden.

C++ zwingt mich halt nicht, alles als Objekt zu implementieren. Und es
zwingt mich schon gar nicht, late binding zu verwenden, wo ich es nicht
brauche.

Alles als Objekt ist eh Quatsch. Man schaue sich mal die "Klasse"
java.lang.Math an.

Quote:
Das stünde auch C++ gut an, wenn es zu den primitiven Typen auch
entsprechende implizite Klassen gäbe, von denen man erben kann, um
semantische oder geringfügig funktionale Varianten der Primitive zu
schaffen. Ich denke dabei z.B. an Maßzahlen, die einfach Zahlen sind mit
Cast-Opeatoren zu anderen Zahlen, in denen dann die Skalierung geregelt
ist.

Das kannst du prinzipiell alles heute schon haben. Für SI-Einheiten
hatte ich z.B. vor Jahren mal was gepostet:
<8ra4q4$t1s$1 (AT) kastor (DOT) inf.tu-dresden.de>.

Du bekommst kein Autoboxing im Sinne dass beim Aufruf der Funktion
'foo(const AbstractNumber&)' mit 'foo(1)' ein Objekt der passenden
AbstractNumber-Kindklasse angelegt wird. Und das ist auch gut so (denn
Autoboxing in Java ist, wie üblich, Compilermagie, und es ist nicht
möglich, z.B. dateiweit alle 'int's automatisch in 'MyRangeCheckedInt'
verpacken zu lassen).


Stefan
Back to top
Stefan Ram
Guest





PostPosted: Thu Jan 18, 2007 12:27 am    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Newsgroups: de.comp.lang.iso-c++,de.comp.lang.misc
Followup-To: de.comp.lang.misc

Markus Wichmann <nullplan (AT) gmx (DOT) net> writes:
Quote:
Ich denke dabei z.B. an Maßzahlen, die einfach Zahlen sind mit
Cast-Opeatoren zu anderen Zahlen, in denen dann die Skalierung
geregelt ist.
Jedem das seine: Implementiere es doch einfach.
Da ist durchaus noch Entwicklungspotential für die Sprache.
Dann schreibe eine neue Sprache, nenne sie meinetwegen C+=2 -
aber erwarte nicht, das irgendjemand sie benutzt.

Einheiten gibt es ja in Fortress, das unter BSD-Lizenz
verwendet werden kann.

http://en.wikipedia.org/wiki/Fortress_programming_language

»Measurements in the same unit can be compared, added,
subtracted, multiplied and divided. Measurements in
different units can be multiplied and divided. For
example, we can write the following variable declaration:

v : R m/s =( 3 meters + 4 meters )/ 5 seconds«

2.10 Dimensions and Units

http://research.sun.com/projects/plrg/fortress.pdf

Newsgroups: de.comp.lang.iso-c++,de.comp.lang.misc
Followup-To: de.comp.lang.misc
Back to top
Jürgen Herz
Guest





PostPosted: Thu Jan 18, 2007 7:26 pm    Post subject: Re: Buchempfehlung zur C++-Nutzung gesucht Reply with quote

Andre Weihe wrote:

Quote:
Im Laufe dieses Threads habe ich ja jetzt gelernt, daß C++ und
Objektorientierung nicht unbedingt zusammenpassen.

Pfff, Evangelisten der "reinen" OO-Lehre..
C++ war schon immer eine hybride Sprache, was wohl mit ein Grund war
warum sie sich in der Praxis behaupten konnte.
Selbst in einer Sprache die keine OO-Mittel anbietet kann man OO
programmieren wenn man will (was nicht heißen soll, das es unbedingt
Sinn macht).

Auch gut, ich kann da wirklich selbst nichts dazu sagen. Erstens weil es mir
momentan eher wurscht ist was OO genau ist. Und zweitens weil ich eben
nichtmal weiß wie man C++ sinnvoll nutzen kann. Zumindest letzteres wird
sich ja hoffentlich bald ändern.

Quote:
Ich bedanke mich soweit mal für eure bisherigen Empfehlungen (auch die für
ein Uni-Skript) und werde sie im Buchladen auch alle ansehen.

Allerdings versuche ich es jetzt nochmal etwas anders und frage nach einem
Buch zum praktischen Einsatz von C++. Also meine Kernfrage etwas
umformuliert: Wie arbeite ich mit C++ am Besten und wende das was in C++
gegenüber C anders ist am Besten an? Das "Beste" ist sicherlich eine
strittige Frage, aber deshalb frage ich ja in einer Usegroup und nicht nur
einen einzelnen.

Empfehlungen aus meinem Bücherregal zu C++:

[...]

Herzlichen Danke, André. Das ist doch mal eine Aussage und eine interessante
Auswahl. Ob ich mit den einzelnen Titeln glücklich werde/würde ist freilich
was anderes, aber mit der Liste lässt sich arbeiten.

Gruß,
Jürgen
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.