Hallo, ich versuche seit einiger Zeit einen Einstieg zu C++ zu finden, scheitere aber immer wieder an irgendwelchen für unverständlichen Sachen wie OOP und so. Da ich programmiertechnisch schon etwas vorbelastet bin, sind die reinen Änfängerbücher mir immer etwas zu oberflächlich (sind die nur für Informatik-Studenten geschrieben, die nur von TLAs, Methoden, Instanzen und dem Pizzalieferservice leben?) Früher gab es Bücher "Von Basic zu Pascal" oder so ähnlich. Gibt es sowas auch für "Aufstieg bzw. Umstieg von C zu C++"? Gibt es da Leute, die ähnliche Probleme haben wie ich? Kennt da jemand eine Seite oder hat eine Buchempfehlung in der Richtung? Mir fehlt eigentlich nur ein Bild oder so, was mir zB. OOP wirklich bringt. Leider ist mir das "Vererbungsproblem" schon irgendwie bei TurboPascal komisch vorgekommen. Da störten mich die vielen "NULL" und Klammern, die den Quellcode unübersichtlich machten. Dass es praktisch sein muß, zeigt die Verbreitung... Gruß Rahul
C++ ist nicht abstakt, es gibt den Ausdruck abstrakt nicht! es gibt nur pure virtual, und das heißt Deklaration ohne Implementierung und wir mit einem = 0 hinter der Deklaration innerhalb einer Klasse. Und um die Verwirrung komplett zu machen, ist das dann wieder abstrakt... OOP ist die einzige Möglichkeit übersichtlich und komfortabel seine Indeen in ein Programm umzusetzen, ohne (wenn man OOP begriffen hat) in Spagetticode zu verfallen. Am besten lernt man C++, wenn man sich ein paar Klassen schreibt und mit dem Debugger schaut, was passiert. Dann begreift man auch solche Sachen vie Vererbung, Polymorphie, Interfaces, pure virtual und wird feststellen, wenn der Aha-Efekt gekommen ist, daß man eigentlich nie wieder mit eine nicht objektorientierten Programmiersprache arbeiten will.
C++ in 21 Tagen C++ für Dummies Sind nicht sooo chlecht geschrieben und bauen au C auf, wobei allerdings die wichtigsten Elemente von C nochmals auf ein paar Seiten erwähnt wird.
Moin... Oha, die Bücher sind aber eher bitter. Wenn du der englischen Sprache mächtig bist kann ich wärmstens die "Thinking in ..." Reihe von Bruce Eckel empfehlen. Der Mann macht nichts anderes als Informatik Kurse und entsprechende Bücher zu produzieren. Der Ansatz ist immer vom theoretische Gedanken hin zur praktischen Anwendung mit Beispiel. Die Bücher gibts auch auf deutsch, leider kenne ich nur eins davon. Das war die erste Ausgabe des Java Buchs und das Ding war eine Katastrophe, die englische Ausgabe eine Offenbarung! Ansonsten Addison Wesley, gute Buchhandlung suchen die einen mal in den Büchern etwas schmökern läßt und selbst ein Bild machen. Sonst nächste Uni/FH suchen und da in der Bib umsehen. Geht meistens. -- Sven Johannes
Svens Beitrag sei nur folgendes hinzugefügt: "Thinking in C++ 2nd Edition by Bruce Eckel Free Electronic Book Volume 1 & Volume 2" Gibts hier: http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
was ist an oop sooo unverständlich??? du hast doch auch unter c so dinger namens struct.. c++ hat jetzt eben eine art struct in dem lustigerweise alle funktionen, die den struct verändern oder was auch immer können, gleich dabei sind... sprich daten + funktionen die was damit machen == class und templates sind glaub ich auch noch in c drinnen.. mit klassen und templates könnte man sich lustig auch eine art vererbung aufbaun... sprich im prinzip hat man nur alles was nett ist in klassen vereint und jetzt hat man im prinzip die einerlegende-woll-milch-sau zur verfügung und ist trotzdem in der lage lustig hardwarenahe zu programmieren.... es gibt da ein adim scriptum..ka wo man das bekommt.. ich habs mal in der schul bekommen... ich müsst mal die isbn raussuchen falls die dinger sowas haben... das ist schön dünn.. es ist das wichtigste drinnen und verstehen kann mans auch... tiefgründige sachen von wegen prinzip und verstehen was da gemacht wird kannst eh vergessen solange du dem bösen reverse-engeneering nicht mächtig bist... zumindest ist es mir so ergangen.. 73
du solltest dich unbedingt mal mit OOP etwas beschäftigen .. Mich zumindest hat das OOP Fieber doch schon vor einiger Zeit gepackt (auch wenn ich nur mit Java/C# beruflich zu tun habe - C++ habe ich nur für ein einziges Projekt benötigt(alles andere wäre zu umständlich gewesen)). Allerdings machen meiner Meinung nach erst Dinge wie Vererbung und Polymorphismus einen wesentlichen Anteil der großartigen Möglichkeiten aus :) (um Himmels Willen, das ist jetzt mal wieder in einen Lobesgesang ausgebrochen). @Mobis: Ich glaub jetzt hast ihn vollkommen verwirrt ;) .. Der greift nie wieder zu einem OOP Buch :)
@Hans: und da fängt es schon wieder an: Wieso verbinde ich meine Daten mit irgendwelchen Funktionen? Bis jetzt sahen meine Programme immer so aus, dass ich die engegangenen Daten irgendwie verarbeitet habe, und sie dann wieder irgendwie ausgegeben habe. Also quasi jedes Programm eine Klasse für sich. Mit Structs habe ich auch schon gearbeitet, und finde die auch sehr praktisch. Soweit ich die Sachen, die ich mir bis jetzt zu dem Thema (Windows-Programmierung) angetan habe, verstanden habe, ging es meistens darum, irgendwelche Grafikfunktionen mehrfach zu verwenden. Sprich: ich habe eine "draw"-Funktion, die mir irgendwo in einem Fenster (das ich durch ein "Handle" angebe) einen Punkt mit einer bestimmten Farbe hinmalt. Will ich jetzt einen Kreis zeichnen, wird der "Kreis"-Klasse die Eigenschaft "draw" vererbt. Im "normalen" Programmierstil hätte ich einfach eine Funktion "draw", die ich durch eine andere Funktion aufrufen lasse. Was also kein besonderer Vorteil der OOP wäre. Wenn ich jetzt ein Rechteck zeichnen lasse wollte, vererbe ich wieder die "draw"-Funktion... Oder habe ich da jetzt was durcheinander geworfen? Könnte mir jemand ein (für mich verständliches) Beispiel für OOP geben? Herzlichen Dank, Rahul
ich musste auf der Uni (nein - ich studiere nicht Informatik) .. ein OO Modell basteln, welches eine Universität simulieren sollte. Es gab dabei Vortragende, Vorlesungen, Studenten, Prüfungen, ... Und diese Sachen mussten nun alle miteinander verwoben werden. Versuche das mal mit klassischer Programmierung - da wirst alt dabei und alles wird höcsht unübersichtlich. Mittels OO wurden eben Objekte angelegt, welche genau die Eigenschaften hatten. Beispielsweise hatte eine Student einen Namen und besuchte eine Vorlesung, wlche wiederum eine Nummer hatte (für die er sich einschreiben musste). Gelöst wurde das so dass es eben das Objekt Student gab und das Objekt Vorlesung. Nun kannte die Klasse Vorlesung Dinge wie ihre Nummer, ihren Namen, eine Liste mit angemeldeten Studenten, ... UND sie hatte auch eine Methode Vorlesung.addStudent(Student x). Indem nun diese Methode aufgerufen wird, fügt sie intern den Studenten zu einer Liste hinzu. Das funktioniert zwar auch mittels klassischer Programmierung, aber stell dir nun mal vor, du hast 100e Vorlesungen und 1000e Studenten. Gar nicht auszudenken wieviel Variablen dann hier ins Spiel kommen (von 100en Arrays mal abgesehen). Natürlich war das Beispiel deutlich komplexer, aber ich finde es gibt einen guten Überblick. Beispielsweise wurden Professor und Student von Mensch abgeleitet. Ich hoffe dir hiermit mal ein anderes Beispiel statt des ewig drögen Kreises gegeben zu haben.
Auch wenn ich mich jetzt als Nervensäge oute: Was bringt es mir, wenn ich Daten und Funktionen miteinander verbinde? Das Beispiel von Tom würde ich auch mit klassischer Programmierung hinbekommen: Eine Struktur namens "Mensch" mit solchen Daten wie Name, Anschrift, Geburtsdatum etc kann für Profs wie für Studenten und alle anderen Hochschulangehörigen verwendet werden. Um einen Studenten zu charakterisieren, gäbe es dann eine Struktur, die noch Sachen wie Matrikelnummer, Studiengang, Studienbeginn, Fachsemester etc enthält. Profs hätten vielleicht noch Attribute wie Personalnummer, einen Stundenplan, Vorlesungsnummer(n) oder so. Die Studenten würde ich in eine Datei (Datenbank) schreiben, die nach Matrikelnummern sortiert ist. Dann gibt es eine Datenbank, die aus den Vorlesungen besteht, und die Matrikelnummern der Zuhörer (und die PN des Profs) enthält (eine Vorlesungsnummer tritt mehrfach auch; je nach Anzahl der Studenten pro Vorlesung) Die dritte Datenbank enhält eine Liste der Profs mit der entsprechenden Vorlesung (mit Stundenplan). Jetzt habe ich 3 Indizes mit denen ich doch eigentlich jede Datenkombination herausbekommen kann. Als Eingabe würden 3 Masken reichen: Student, Prof, Vorlesung. Ausgaben würde es ein paar mehr geben... Vielleicht komme ich jetzt gerade selber drauf: Es gibt eine Funktion (Methode), die an der Klasse "Mensch" hängt, die es ermöglicht, die entsprechenden Daten (Name, Anschrift etc) einzugeben. In der Klasse "Student" ist dann die Methode auch enthalten (vererbt worden) und wird durch die Eingabe der Matrikelnummer, des Studienganges etc erweitert. Ausgaben dann auch entsprechend. Könnte man da auch den Zugriff auf verschiedene Datenbanken realiesen? Die Klasse "Vorlesung" hätte dann als Daten die Prof-Nummer, einen Raumindex und eine Liste der teilnehmenden Studenten. Als Methoden hätte die Klasse dann die Eingabe (vorlesung.addstudent (Student x)), die wiederum die Methode "Student.Eingabe" aufruft. Irgendwie verwirre ich mich da wohl auch dauernd selber. Ist es nicht auch so, dass die OOP dafür benutzt wird, verschiedenen Objekten, die gleichen Eigenschaften zu verpassen? Aus der VB-Programmierung kenne ich z.B. xxx.additem, wobei xxx eine ComboBox oder eine ListBox sein kann. Wenn ich also eine Funktion geschrieben habe, die zu irgendeiner Liste (muß ja nicht auf dem Bildschirm sichtbar sein) etwas hinzufügen will, nenne ich die Funktion auch "additem"? Wenn ich jetzt mehrere gleiche Objekte für verschiedene Sachen benutzen möchte (bspw 5 Listboxen mit verschiedenem Inhalt), dann werden die Methoden für jede Listbox einfach kopiert. Das würde einen grösseren Aufwand in der klassischen Programmierung erfordern, oder? Vielen Dank für Euer Verständnis Rahul
snip Die Klasse "Vorlesung" hätte dann als Daten die Prof-Nummer, einen Raumindex und eine Liste der teilnehmenden Studenten. Als Methoden hätte die Klasse dann die Eingabe (vorlesung.addstudent (Student x)), die wiederum die Methode "Student.Eingabe" aufruft. snip dazu noch ein paa Worte: Der Vorlesung wird in einem Fall ein Fix-Fertiges Objekt (genauer gesagt eine Instanz - also eine konkrete Ausprägung des Objekts) übergeben. angenommen du legst zu Programmbeginn alle Studenten an, bzw. entnimmst sie einer DB oder woher auch immer (Stichwort: Serializing), dann musst du danach bei AddStudent nicht mehr lang herumfragen, welcher Name, ... x ist dann einfach ein konkreter Student (das Objekt IN SICH SELBST hat schon alle Daten wie Nummer/Name). Sprich: Du suchst nach einem Student mit z.b. einer Nummer, bekommst von dort ein Objekt geliefert und das Objekt gibst du dann einfach weiter. Ich kann mich leider nicht so gut ausdrücken wie ich das will, ich bin beileibe kein Profi und gewisse Ausdrücke wollen nicht ins Hirn :) Ich nehme gern für Objekte folgenden Vergleich (der nicht ganz richtig ist, aber gut vorstellbar). Stell dir ein Objekt als Schablone vor. Wenn du nun eine Instanz dieses Objekt erzeugst, dann kannst du der Instanz Daten zuweisen. Die Instanz hat alle Funktionen, welche du in der Schablone vorgegeben hast. Sprich: * Ich habe 10 Vorlesungen * Ich generiere ein Objekt Vorlesung und gebe diesem einen Vector (bischen aufgebohrtes Array mit variabler Anzahl an Elementen usw.) welcher jegliches Objekt aufnehmen kann. * ausserdem kennt dieses Objekt Vorlesung eine Methode namens addStudent(Student stu). * nun habe ich 2 verschiedene Vorlesungen Vorlesung a = new Vorlesung(); Vorlesung b = new Vorlesung(); (könnte man natürlich wiederum in einem Vektor speichern, ...). * Ich lege mir 3 Studenten an Student x = new Student("Vorname1","Nachname1","Nummer1"); Student y = new Student("Vorname2","Nachname2","Nummer2"); Student z = new Student("Vorname3","Nachname3","Nummer3"); * Nun soll Student x und y die Vorlesung a besuschen, Student y und z die Vorlesung b a.addStudent(x); a.addStudent(y); b.addStudent(y); b.addStudent(z); was addStudent nun macht, bleibt dir überlassen, bspsweise könnte addStudent das übergebene Objekt in den Vector werfen (jede Vorlesung hat ja durch das Instanzieren einen eigenen Speicherbereich - in unserem Fall eben einen Vector). Dieser Aufbau gibt dem Ganzen eine klare, eindeutige Struktur, es ist einfach leicht zu lesen (bei geeigneter Wahl der Methodennamen und Felder). VB (bis inkl. Version 6) würde ich nicht für OOP heranziehen ;). P.S.: Das obige ist Java Syntax - ich hoffe du verzeihst :)
C++ hat was, da gehen so Sachen wie: #define private public oder im Objekt: delete this; (Ich liebe alles was man nicht machen soll, Chaosprogrammer). Sebastian
>Dieser Aufbau gibt dem Ganzen eine klare, eindeutige Struktur, es ist >einfach leicht zu lesen (bei geeigneter Wahl der Methodennamen und >Felder). Es geht also eigentlich nur um das "hübschere" Aussehen des Programm-Code? Wogegen ich wirklich nichts habe. (ausser, dass man eine Menge Punkte bei manchen Objekten braucht...) Übrigens sieht JAVA C ziemlich ähnlich... In C würde man das ja auch alles über Pointer machen, und müsste diese dann an irgendwelche Funktionen übergeben. Indem man die Funktionen an die Strukturen koppelt (zu Klassen macht), wird nur eine gewisse Übersichtlichkeit geschaffen!? Klassen sind somit Daten-Typen? Sobald ich einem Variablen-Namen einen Klassen-Typ zuweise, und diesen mit "new" initialisiere, wird daraus die Instanz. Man kann verschiedene Instanzen von einer Klasse herstellen (wie 10 verschiedene Variablen vom Typ int). Der Rest dient der Schönheit/Übersichtlichkeit. Man braucht also für verschiedene Datensorten immer noch verschiedene Funktionen... Da das alles über Pointer funktioniert, kam es mir etwas abstrakt vor. Mit einem Index wie "Matrikelnummer" kann ich etwas mehr anfangen... Vielen Dank für die Unterstützung. Das werden leider nicht meine letzten Fragen gewesen sein... Rahul
also es geht nicht nur um das "hübschere" Aussehen ... aber das ist für mich ein großer Vorteil :) Pointer gibts in Java (glücklicherweise) nicht (ja, ok, im Hintergrund passiert auch nix anderes). Hmm . .also eine Klasse als Datentyp zu sehen ist zwar nicht ganz richtig, aber gewisse Merkmale haben beide gemeinsam. Ahja .. unter C# besispielsweise gibts die "klassichen" Datentypen nicht mehr (bzw. sind sie in Klassen namens Integer, String, ... versteckt (und eigentlich von aussen nicht mehr zugänglich)). Das mit "new" ist richtig. New erzeugt eine Instanz. Persönlich muss ich sagen, dass ich es nicht ideal finde, mit C++ OOP zu lernen. Eine richtige Objektorientierte Sprache wie Java wäre da vermutlich in den wesentlichen Punkten etwas deutlicher :) (man müsste sich weniger um Pointer kümmern und könnte sich mehr auf OOP beziehen). Wenns um Windows - Oberflächen geht, würde ich C# vorziehen. Aber wenns nicht anders geht :)
Man muß in C++ nicht mit Pointern rumopern. Auch wenn jetzt manche sagen, dann kannst Du gleich JAVA nehmen, (gebe ich auch zu, JAVA ist C++ für Anfänger) Die hohe Kunst besteht darin, Referenzen und Instanzen zu verwenden. Nicht Pointer auf Instanzen (wie Du oben mit new erzeugen willst und hoffendlich wieder löschst).
Dann sollte ich mir mal eine (halbwegs) sinnvolle Aufgabe zum Üben suchen. Am Ende will ich was mit Bildverarbeitung machen... Das geht mir in VB (6.0) viel zu langsam... Und wie mein Prof schon meinte: "Kein Programmierer über 12 Jahre arbeitet noch mit Basic..." Für Mechatronik-Studenten sollte VB als Einstieg reichen... Ist es ratsam, bei gewissen C-Kenntnissen den Weg über JAVA zu gehen (freie Kompiler unter XP?) ? Schönen Abend noch, Rahul
also Java ist sicherlich keine falsche Wahl ... Wenn du dich auf Windows Plattformen festlegst und auf "schöne" Oberflächen stehst, wäre auch C# eine Alternative (auch dafür gibts freie Compiler). Z.b. das Mono Projekt (Linux/Win) oder das .NET SDK von Microsoft + CSharp Editor.
Hallo, ich versuche es mal über diesen weg, da ich ähnlich wie du angefangen habe oop zu programmieren. Du schreibst zb. eine klasse mit konvertierungsfunktionen: die klasse KonverterClass hat 4 Methoden, Int16ToByteBuffer(byte Buffer()); StringToInt(string Text); . . jetzt kann ich diese Methoden einfach benutzen indem ich mit new eine instanz der klasse erstelle. in der klasse sind alle definitionen und alles was man noch brauchen könnte schon definiert. Wenn mir oder jemand andren einfällt das er die klasse erweitern will, dann erbt er meine klasse und sagt die neue klasse heisst jetzt KonverterClassNew, in dieser klasse definiert und programmiert er seine neuen methoden die er braucht, jetzt kann meine alten methoden in seiner klasse verwenden und er brauch sich nicht drum kümmern wie ich meine alten 4 mehtoden implementiert habe. wenn ich jetzt eine instanz der klasse KonverterClassNew erstelle, dann habe ich die alten + die neuen methoden. Das hat den vorteil das man sich zb. sehr simple funktionen sehr gut verschachteln kann und damit stück für stück zu seiner problemlösung kommt. man spart sich jede menge verwaltungsaufwand für seine methoden, da man exakt die benötigen methoden in seinem objekt findet. Sebastian
Hallo Sebastian, danke für die Erläuterung. Leider gehst du nicht darauf ein, wie man vererbt. Wie man eine Klasse erzeugt, habe ich inzwischen herausbekommen. Wie deine KonverterClassNew entsteht, wird mir jetzt nicht ganz klar. Da werde ich wohl noch mal ein Buch angucken müssen. Gruß Rahul
normalerweise definiert du ja deine klasee so: public class KonverterClass{ //hie steht das interface und ide methoden ... .. . } //erben von der basisklasse um die neue zu erzeugen public class KonverterClassNew : KonverterClass{ //jetzt kann ich hier auf alle methoden von KonverterClass zugreifen //und meine neuen methoden definieren ... .. . }
Hi @Tom Es ist nicht so das es bei .NET (und damit auch in C#) keine "klasischen" Datentypen mehr gibt. Das wäre nämlich eine ziemliche Katastrophe da Objekte von Klassen in der .NET Runtime immer auf dem Heap angelegt werden. Das würde bedeuten das jedes kurz mal deklarierte int eine Speicherallokation auslösen müßte und den GC belasten würde. Value-Typen (int, float, structs) werden auf dem Stack angelegt. Das man mit diesen Datentypen wie mit Objekten arbeiten kann, ist einem Prinzip das Boxing/Unboxing genannte wird, zu verdanken. Wenn man also sowas macht wie 3.ToString() wird die 3 erstmal implizit in ein Objekt verwandelt und auf diesem Objekt dann die entsprechende Methode aufgerufen. Matthias
@Matthias: Ich wollte eigentlich nur sagen, dass es man soweit gegangen ist, auch die klassischen Datentypen in den Rest zu integrieren ... :)
Hi ich wollte nur darauf hinweisen das diese Basistypen eben keine Objekte im eigentlichen Sinne sind. Du hast aber natürlich Recht das man sie fast so verwenden kann. Das Ganze ist aber nur <zitat> syntaktischer Zucker </zitat>. Java kann das ja auch, nur erfordert es eben mehr Schreibarbeit. Ich persönlich halte C# und das .NET Framework übrigens für sehr gelungen. Die Sprache vereint einige Aspekte von C++ mit einigen von Java recht geschickt. Dank Spezifikation der CIL und Teilen der BCL ist auch der Weg für den Einsatz auf anderen Platformen offen was das Mono-Projekt anschaulich beweißt. Deswegen mein Tip an Einsteiger in OOP: Verwende C# oder Java und nicht C++. C++ ist eine enorm komplexe Sprache und nicht sehr einsteigerfreundlich. Wenn man dann mal etwas Erfahrung gesammelt hat kann man die Vorteile von C++ aber durchaus nutzen. Matthias
Mit dem 2ten Absatz sprichst du mir aus der Seele. Musste beruflich mal einen Client / Server Struktur basteln (ich sag mal nicht wofür, das geht nur die Firma was an). Es war klar, dass der Server in C++ geschrieben werden musste. Die DLL sollte unter allen Umständen auf der STL basieren und so gut wie möglich mit bereits bestehenden Dingen interfacen (jaja, ComInterop, weiss schon - es erschien damals jedenfalls als sehr passend). Dazu dann noch einen MFC basierten Client. Die ganze Sachen mit dem Datenaustausch über Membervariablen ging mir jedenfalls ziemlich am Socken ;). Daraufhin wurde angeordnet ich solle mal testweise denselben Client in C# schreiben (ich hatte bis dato noch keine Erfahrungen mit C#). Daraufhin hab ich mir aus der internen Bibliothek das Buch Goto C# geholt, angefangen zu lesen, draufgekommen, dass Java dem Ganzen sehr ähnlich ist - angefangen zu programmieren und tada - der Client war schneller fertig als das MFC Pendant. Seitdem kommt C++ nur noch in ganz besonderen Fällen zum Einsatz.
Hi das einzige was völlig, aber auch komplett, mißlungen ist, ist die automatische Dokumentation auf XML-Basis. Wenn man das mit den Möglichkeiten von javadoc oder sogar doxygen vergleicht zieht es eindeutig den Kürzeren. Schön das doxygen wohl auch C# unterstützt. Das werd ich sobald als möglich mal austesten. Matthias
ich hab auch einen negativ-punkt: Ich hab bis dato keine Möglichkeit gefunden, spezifische Fehler abzufangen. Sprich: Ich muss von jeder Methode wissen, welche Fehler auftreten können und diese abfangen. Unter Eclipse bei Java geht das Vollautomatisch: Create try/catch Block -> und schon hast mehrere catch Blöcke mit den möglicherweise auftretenden Fehlern ..
die gleiche erfahrungen haben wir in der firma auch gemacht, bei uns wird jede neue software nur noch in c# gemacht, die entwicklungszeiten sind damit wesentlich besser. Auch die fehlerquote bei den SW modulen ist wesenltlich geringer. Den hauptvorteil an dem net framwork sehe ich auch an der starkren und sehr konsequenten oop weil vor allen atomare typen wie int string.. alles objekte sind. So lange man im .net compiler die option Strict on anlässt und alles in managed code schreibt ist die SW nahezu ideal. Sebastian
Ich hab bis dato keine Möglichkeit gefunden, spezifische Fehler abzufangen. Der Satz is so natürlich falsch .. da fehlt ein ... automatisiert ...
Es gibt von Ulla Kirch-Prinz ein Buch was für Umsteiger c -> c++ geschrieben ist. Titel weis ich nicht mehr genau.
Für den Umstieg C nach C++ gibt es ein (wie ich finde) geniales Buch: GoTo Objektorientierung; Autoren Helmut Herold, Michael Klar, Susanne Klar; Verlag Addison-Wesley. Interessant, dass sich kaum jemand kritisch zu OOP äußert (nicht nur hier). Hinsichtlich Programmier-Effizienz scheint mir C (mit geeigneten Bibliotheken) gegenüber C++ im Vorteil zu sein; Das gute alte Top-Down-Prinzip funktioniert eben (fast) immer.
also ich persönlich bin ein Anhänger der OOP. Nicht gerade was C++ anbelangt, aber Sprachen wie C# und Java sind mir einfach deutlich sympathischer als das TopDown Prinzip von C.
Hi dll's kann man nicht kompilieren. Die sind schon kompiliert. Aber du kannst aus einem C#-Quelltext eine DLL erzeugen. Die ist dann aber auch ein CL-Assembly und damit nicht ohne weiteres von unmanaged Code nutzbar. Matthias
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.