myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Objektorientierung / Welche Sprache ist besser?

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 03.02.10, 17:29   #1
Lumen
Newbie
 
Registriert seit: Sep 2009
Beiträge: 72
Bedankt: 21
Lumen ist noch neu hier! | 0 Respekt Punkte
Standard Objektorientierung / Welche Sprache ist besser?

Zitat:
Als Buch würde ich C++ für Spieleprogrammierer empfehlen.
Können hochperfomante Spiele oder sogar Anwendungen mit einer reinen objektorientierten Sprache erzeugt werden?
Nein, deshalb besitzt C++ als Zwittersprache sowohl die guten alten C-Datentypen wie int, float, usw. und moderne objektorientierte Klassen wie CInt, CDouble, usw.
Nur OO-Puristen und OO-Fanatiker benutzen in Schleifen CInt als Zähler.
Der Hinweis von Firefox64 auf C ist kein Unsinn oder Schwachsinn, weil es unglaublich viel C-Code im Netz gibt, die man in ein C++-Projekt einbinden kann.
Code:
http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html
Dass alle, die hier auf Firefox rumhacken, C++-Nerds sind, ist schon klar, weil sie sich nur in Templates äußern, eine Instanzierung ihrer Vorstellungen in konkrete Objekte z.B. Links auf Online-Tutorials oder Schüler-C++ bzw. Informatiker-C++-Projekte erhält man nicht.

Posts als Vererbung von class GOOGLE
Lumen ist offline   Mit Zitat antworten
Ungelesen 03.02.10, 17:35   #2
haze303
xor eax, eax
 
Benutzerbild von haze303
 
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 465
haze303 ist noch neu hier! | 1 Respekt Punkte
Standard

Hier hackt doch niemand auf der Sprache C herum. Allerdings ist es nun mal nicht üblich, dass man seinen C++ Code "ver'C't" - jetzt mal von der sicht eines seriösen Anwendungsentwicklers gesehen, denn dieser Mischcode ist schwer zu warten.
Macht sich besonders bemerkbar, wenn man in einem größeren Entwicklerteam arbeitet und dein Kollege sich mit deiner Abweichung vom Standard herumschlagen muss. Das geht in dein meisten Fällen einfach nicht und kostet eine Firma unnötig Zeit, Geld und Ressourcen.

Btw. ist performante Spiele und Anwendungsprogrammierung nahezu gleichwertig performant mit C# lösbar.
Unsafe Code heisst hier das Stichwort.
__________________
Desktop: Arch Linux | Laptop: Arch Linux
VM: Windows 7, Windows XP, Fedora 14, Arch, Windows Server 2008 R2 Enterprise
haze303 ist offline   Mit Zitat antworten
Ungelesen 03.02.10, 18:10   #3
gosha16
Banned
 
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
gosha16 ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Lumen Beitrag anzeigen
C++-Nerds sind, ist schon klar, weil sie sich nur in Templates äußern, eine Instanzierung ihrer Vorstellungen in konkrete Objekte z.B. Links auf Online-Tutorials oder Schüler-C++ bzw. Informatiker-C++-Projekte erhält man nicht.
Ich bin "C"ler, ich benutze so gut wie nie C++ und wenn es doch nötig ist dann lagere ich den C++ Code in ein eigenes Projekt aus und erzeuge eine (dynamische) Bibliothek.

Ganz davon abgesehen das man nicht 100% des C Codes aus dem Netz einfach in sein C++ Projekt übernehmen kann. Es sind halt doch 2 verschiedene Programmierpsrachen mit unterschiedlichen Standards.
gosha16 ist offline   Mit Zitat antworten
Ungelesen 03.02.10, 22:30   #4
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 454
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

die besten programmierer, die ich kenne, hatten mathe leistungskurs und haben informatik studiert.
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 04.02.10, 06:55   #5
haze303
xor eax, eax
 
Benutzerbild von haze303
 
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 465
haze303 ist noch neu hier! | 1 Respekt Punkte
Standard

Zitat:
Zitat von urga Beitrag anzeigen
die besten programmierer, die ich kenne, hatten mathe leistungskurs und haben informatik studiert.
In welchem Zusammenhang bzw. Bezug bringst du diese Aussage? Ich kenne wahnsinnig gute Programmierer, welche ursprünglich mal Elektriker/Radio- & TV-Techniker waren, die ihr Hobby zum Beruf gemacht haben und nun selbstständige Consultans/Contractor sind.
Wie bei allem, hat auch hier, nicht unbedingt die abgeschlossene schulische Bildung mit dem können eines Programmierers zu tun, denn diese Denkweise wäre etwas eingeschränkt und auch vermessen.
__________________
Desktop: Arch Linux | Laptop: Arch Linux
VM: Windows 7, Windows XP, Fedora 14, Arch, Windows Server 2008 R2 Enterprise
haze303 ist offline   Mit Zitat antworten
Ungelesen 04.02.10, 14:33   #6
Lumen
Newbie
 
Registriert seit: Sep 2009
Beiträge: 72
Bedankt: 21
Lumen ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von haze303:
Btw. ist performante Spiele und Anwendungsprogrammierung nahezu gleichwertig performant mit C# lösbar.
Nein, laut einem Benchmarking braucht C# bei Matrix-Multiplikationen mehr Zeit als C++.
Alle Benchmarking-Links, die ich mir angeguckt habe, sagen ganz klar, dass C# sehr performant ist, in einigen Bereichen aber Schwächen hat.
Bitte daher eure Behauptungen mit Benchmarking-Links belegen.

Zitat:
Können hochperfomante Spiele oder sogar Anwendungen mit einer reinen objektorientierten Sprache erzeugt werden?
Nein, und nochmals Nein, alleine aus Speicherplatzgründen käme niemand auf die Idee riesige Matrizen und arithmetische Operationen mit CInt-Objekten durchzuführen, nur um den reinen OO-Code zu erzeugen.
Und mit riesig meine ich nxm-Matrizen mit n,m>1000.

C# schneidet gar nicht mal so schlecht gegenüber C++ ab
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
aber 20% Prozent langsamer bedeuten mehrere Millionen Dollar Unterschied, wenn man z.B. Klimamodelle von Super-Number-Crunchern berechnen lässt (viele Matrizen-Operationen)

Zitat:
die besten programmierer, die ich kenne, hatten mathe leistungskurs und haben informatik studiert.
Universitäten bilden eher zu Theoretikern als zu Programmierern aus.
Fachhochschul-Informatiker dürften sicher mehr wissen als Autodidaktische Programmierer
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Lumen ist offline   Mit Zitat antworten
Ungelesen 04.02.10, 15:20   #7
gosha16
Banned
 
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
gosha16 ist noch neu hier! | 0 Respekt Punkte
Standard

@Lumen, Gibt es eine SPrache ohne Grunddatentypen?
gosha16 ist offline   Mit Zitat antworten
Ungelesen 04.02.10, 16:51   #8
haze303
xor eax, eax
 
Benutzerbild von haze303
 
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 465
haze303 ist noch neu hier! | 1 Respekt Punkte
Standard

Zitat:
Zitat von Lumen Beitrag anzeigen
Nein, laut einem Benchmarking braucht C# bei Matrix-Multiplikationen mehr Zeit als C++.
Alle Benchmarking-Links, die ich mir angeguckt habe, sagen ganz klar, dass C# sehr performant ist, in einigen Bereichen aber Schwächen hat.
Bitte daher eure Behauptungen mit Benchmarking-Links belegen.
Es sprach niemand davon, dass C# schneller als C++ sei, sondern das performante Applikationen und Spiele ebenfalls mit C# programmiert werden können.

Die Möglichkeit existiert, Programme and Spiele welche auf Performance fokusiert sind, wurden bereits mit C# programmiert.

Jede Sprache hat mehr oder weniger sein definierten Aufgabenbereich, in dem es andere Sprachen um Längen schlägt, aber das ist ja nun wirklich keine neue Erkenntnis.
__________________
Desktop: Arch Linux | Laptop: Arch Linux
VM: Windows 7, Windows XP, Fedora 14, Arch, Windows Server 2008 R2 Enterprise
haze303 ist offline   Mit Zitat antworten
Ungelesen 04.02.10, 17:43   #9
kalliknuddel
Anfänger
 
Registriert seit: Feb 2009
Ort: Berlin
Beiträge: 35
Bedankt: 18
kalliknuddel ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Lumen Beitrag anzeigen
Nein, laut einem Benchmarking braucht C# bei Matrix-Multiplikationen mehr Zeit als C++.
Alle Benchmarking-Links, die ich mir angeguckt habe, sagen ganz klar, dass C# sehr performant ist, in einigen Bereichen aber Schwächen hat.
Bitte daher eure Behauptungen mit Benchmarking-Links belegen.
C# ist im Vergleich zu C++ auch noch ne recht junge Sprache, ganz im krassen Gegensatz zu C++.
Da stecken auch schon einige Jahre "Erfahrung" im Compiler drin, erstrecht beispielsweise in Dingen Optimierung.
Nicht zu vergessen bleibt ausserdem, dass C# nicht den Anspruch hat für Spiele oder super wissenschaftliches Zeux herhalten zu müssen^^
Ich bezweifle auch das C# wirklich "schneller" ist als C++, aber ich denke solang man sich nich mit WPF zeux rumtreibt kann man schon was recht Performantes damit zustande bringen

@Lumen, bevor ichs weider vergesse: Grunddatentypen brauchst du immer.
In C++ sind sie halt "einfache Variablen" und keine Eigenständigen Objekte wie in C#.. is doch wurst was "es" nun ist oO
Das hat doch mit der Performance nichts zu tun -.-
kalliknuddel ist offline   Mit Zitat antworten
Ungelesen 04.02.10, 18:28   #10
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 454
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von haze303 Beitrag anzeigen
In welchem Zusammenhang bzw. Bezug bringst du diese Aussage?
persönliche erfahrung. jedenfalls sind alle informatiker vor denen ich einen gewissen respekt bezüglich ihres fachwissens habe/hatte diesen bildungsweg gegangen.

btw, ich kenne auch schlechte coder, die mathe LK hatten und informatik studiert haben
ich kenn auch schlechte, die karriere gemacht haben...

Zitat:
Zitat von gosha16 Beitrag anzeigen
@Lumen, Gibt es eine SPrache ohne Grunddatentypen?
nein. man braucht mindestens bool.
sonst kann die sprache keine bedingungen ala (if, while ...)
selbst die [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
benötigt einen vorgegebenen Grunddatentyp. die bewegungsrichtung des schreibkopfes nämlich {L,0,R} (entspricht in etwa bool)
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 04.02.10, 19:30   #11
gosha16
Banned
 
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
gosha16 ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von urga Beitrag anzeigen
nein. man braucht mindestens bool.
sonst kann die sprache keine bedingungen ala (if, while ...)
selbst die [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
benötigt einen vorgegebenen Grunddatentyp. die bewegungsrichtung des schreibkopfes nämlich {L,0,R} (entspricht in etwa bool)
urga... ab und an ist es besser nichts zu schreiben, vor allem wenn man nicht gefragt ist...
gosha16 ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 09:51   #12
Lumen
Newbie
 
Registriert seit: Sep 2009
Beiträge: 72
Bedankt: 21
Lumen ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
@Lumen, Gibt es eine SPrache ohne Grunddatentypen?
Eine reine objektorientierte Sprache enthält keine primitiven bzw. Grunddatentypen sondern verkapselt diese in Klassen.
Ja, aber ich habe keine Lust, eure Behauptungen oder Fragen zu widerlegen.
Let me google that for you? Nop.

Es gibt hunderte Computer-Sprachen und neue Sprachen zu erfinden, ist praktisch schon zu so eine Art esport von Informatiker-Nerds geworden.

Zitat:
In C++ sind sie halt "einfache Variablen" und keine Eigenständigen Objekte wie in C#.. is doch wurst was "es" nun ist oO
Das hat doch mit der Performance nichts zu tun -.-
Nicht wurscht, Grafikkarten-Treiber oder Mikroprozessor-Controller werden bestimmt nicht mit wunderschön designten C++-Klassen programmiert, sondern hochperformanter C-Code eingesetzt.

Womit wir bei der Behauptung von Firefox64 wären, mit C anzufangen.
Ist nämlich komplett richtig, wenn man es mit Treibern und vielen anderen Sachen zu tun.

Mit C++ anfangen kann man auch, es ist aber allgemein anerkannt, dass man erst nach einem Jahr ein guter Klassen-Designer sein kann, der wiederverwendbaren OO-Code schreiben kann.
Lumen ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 14:23   #13
gosha16
Banned
 
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
gosha16 ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Lumen Beitrag anzeigen
Nicht wurscht, Grafikkarten-Treiber oder Mikroprozessor-Controller werden bestimmt nicht mit wunderschön designten C++-Klassen programmiert, sondern hochperformanter C-Code eingesetzt.
So ein Blödsinn... mit der Performance hat das überhaupt nichts zu tun. Vllt informierst du dich erstmal warum man das in C schreibt, bevor du irgendwelche blödsinnigen Behauptungen aufstellst.

Studd erzählen um sich zu rechtfertigen, also da platzt mir der Kragen
gosha16 ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 14:52   #14
Lumen
Newbie
 
Registriert seit: Sep 2009
Beiträge: 72
Bedankt: 21
Lumen ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von gosha16:

So ein Blödsinn... mit der Performance hat das überhaupt nichts zu tun. Vllt informierst du dich erstmal warum man das in C schreibt, bevor du irgendwelche blödsinnigen Behauptungen aufstellst.

Studd erzählen um sich zu rechtfertigen, also da platzt mir der Kragen
gosha16, meine Behauptung kurz hintereinander als Blödsinn und blödsinnig zu bezeichnen, ist schlechtes Deutsch und dafür kriegst du von mir ein dickes W
Hättest du deine Blödsinn-Behauptung zumindest mit einem Link beweisen/belegen können - so wirds uns doch im Deutsch-Unterricht beigebracht - wäre dein Flame immerhin bewiesen worden.

So allerdings ist dein Beitrag von 15:23 nicht weiter als trolliges Geflame.
Lumen ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 15:02   #15
kalliknuddel
Anfänger
 
Registriert seit: Feb 2009
Ort: Berlin
Beiträge: 35
Bedankt: 18
kalliknuddel ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Lumen Beitrag anzeigen
Hättest du deine Blödsinn-Behauptung zumindest mit einem Link beweisen/belegen können - so wirds uns doch im Deutsch-Unterricht beigebracht - wäre dein Flame immerhin bewiesen worden.
So allerdings ist dein Beitrag von 15:23 nicht weiter als trolliges Geflame.
Das ganze war nen nett gemeinter Ratschlag.
Aber die disqualifizierst dich hier eigentlich nur immer mehr durch deine Posts, nur falls dir das nicht auffallen sollte sag ich dir es lieber nochmal.
Wieso sollte er dir nen Link geben?
Vielleicht hat er auch einfach "keine Lust, deine Behauptungen oder Fragen zu widerlegen".

Anfängern unter die Arme zu greifen ist das eine, den Leuten kann man vielleicht noch nen Link geben.
Nen Denkanstoß sollte dennoch meistens auch aussreichen. Wenn mans nich selbst auf die Reihe bekommt sich Informationen rauszusuchen tuts mir echt leid.
Aber Leuten die absolut unfähig sind helfe ich zumindest nicht. Wahrscheinlich sieht gosha das genauso..
kalliknuddel ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 15:21   #16
gosha16
Banned
 
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
gosha16 ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Lumen Beitrag anzeigen
gosha16, meine Behauptung kurz hintereinander als Blödsinn und blödsinnig zu bezeichnen, ist schlechtes Deutsch und dafür kriegst du von mir ein dickes W
Hättest du deine Blödsinn-Behauptung zumindest mit einem Link beweisen/belegen können - so wirds uns doch im Deutsch-Unterricht beigebracht - wäre dein Flame immerhin bewiesen worden.

So allerdings ist dein Beitrag von 15:23 nicht weiter als trolliges Geflame.
Du ahckst auf meinem deutsch rum? sonst fällt dir wohl nichts ein?
Beleg du mir deine Behauptung mit einem Link!

Mal als Stichwort: C++ (groß) und µC (µ)

geht dir nen Licht auf?

@harbok
Ich hab es bis jetzt noch nicht gesehen das 2 verschiedene Programmierprachen dazu hergenommen wurden. Prozedurale Programmierung wird wohl (meist) an einer Objektorientierten Sprache erklärt, das geht da auch.
gosha16 ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 17:00   #17
gosha16
Banned
 
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
gosha16 ist noch neu hier! | 0 Respekt Punkte
Standard

die leute die dir gegen den strich gehen sind flamer, alles klar...
Ich soll meine Behauptungen mit Links belegen, SORRY für IRC Gespräche gibts leider keine Links. (Aber wenn du meinst das es an der Perormance liegt dann pack doch den ganzen C++ Standard in nen µC und probiers aus...)
Aber du könntest mir ja den Gegenbeweis für meine Theorie liefern? Hast du selber etwa keine links?
Btw. was behaupte ich denn alles?

//Edit:

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

gosha16 ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 18:56   #18
ThePinsel
Freizeit-Troll :>
 
Registriert seit: May 2009
Beiträge: 2.270
Bedankt: 611
ThePinsel ist noch neu hier! | 0 Respekt Punkte
Standard Objektorientierung im Kindergarten / Welche Sprache ist besser?

So Leute...hier könnt ihr euch über die philosophische Frage unterhalten, welche Sprache nun die ultimativ beste ist. Bitte auf sachlichem Niveau. Im Tutorial von Firefox64 wären eher produktive Vorschläge gesehen, als euer Hin und Her über Programmiersprachen!
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] | [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
ThePinsel ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 20:10   #19
harbok
Erfahrener Newbie
 
Registriert seit: May 2009
Beiträge: 117
Bedankt: 93
harbok ist noch neu hier! | 0 Respekt Punkte
Standard

@gosha16:

Während meines Info-Studiums (2000, Uni) haben wir mit SCHEME angefangen, uns dann PASCAL genähert und sind über Java zum OOP gekommen. Aktuell wird in der Ausbildung zum Fachinformatiker AE bei der örtlichen Berufschule erst C, dann C++ und anschließend Java unterrichtet und im Bachelor Informatik Studiengang einer bekannten Fernuni sieht es gerade nach PASCAL gefolgt von Java mit einem Seitenhieb PROLOG aus.

Man kann prozedurale Programmierung natürlich auch irgendwie in den OOP-Sprachen exerzieren (mehr schlecht als recht), aber das lenkt oftmals einfach nur ab. Der C Syntax ist sicher nicht so schön wie Python, aber er findet sich in sehr ähnlicher Weise in sehr vielen Sprachen wieder und darum würde ich eine zwangsreduzierte C Syntax für Einsteiger als am geeignetsten halten.
harbok ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 20:25   #20
gosha16
Banned
 
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
gosha16 ist noch neu hier! | 0 Respekt Punkte
Standard

Ok, ich kenns nur von Bekannten und Podcasts ausländischer Unis und von meiner Berufsschule, da wird alles anhand von Delphi erklärt, ok da wurden auch nicht alle vorzüge von Prozedural und OO durchexerziert. (Bei uns werden auch keine Anwendungsentwickler ausgebildet.)
Ich find es aber nach wie vor bedenklich erst C zu lehren und dann C++. Das ist meines erachtens nach unschöner als C++ für beides herzunehmen, denn grade in C++ fällt es kaum auf.
gosha16 ist offline   Mit Zitat antworten
Ungelesen 06.02.10, 20:42   #21
harbok
Erfahrener Newbie
 
Registriert seit: May 2009
Beiträge: 117
Bedankt: 93
harbok ist noch neu hier! | 0 Respekt Punkte
Standard

Der wohl grösste Vorzug der OOP ist die unglaubliche Stärke und Flexibilität im Design.

Programmieren hat in erster Instanz aber mal nichts mit eben jener Softwareentwicklung oder -design zu tun. Ein Anfänger sollte lernen, wie er der Maschine klarmacht, was sie zu tun hat, wie er den Kontrollfluss manipuliert, verzweigt, selektiert, iteriert - das Übliche halt. Dafür sind prozedurale Sprachen weit geeigneter als eine OOP-Sprache prozedural umzukrempeln.

Ich finde C oder PASCAL eine gute Wahl für eine erste Sprache. Nach C sollte aber meiner Meinung nach nicht C++ folgen, weil das zu fiesem Mischcode führt, da Anfängern oft nicht klar ist, welches Element nun in welche Sprache gehört. In einer Anfängergruppe in C++ prozedural oder schlimmer noch C zu schreiben kommt einer Dämonenbeschwörung gleich
harbok ist offline   Mit Zitat antworten
Ungelesen 07.02.10, 08:23   #22
Lumen
Newbie
 
Registriert seit: Sep 2009
Beiträge: 72
Bedankt: 21
Lumen ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Ein Anfänger sollte lernen, wie er der Maschine klarmacht, was sie zu tun hat, wie er den Kontrollfluss manipuliert, verzweigt, selektiert, iteriert - das Übliche halt. Dafür sind prozedurale Sprachen weit geeigneter als eine OOP-Sprache prozedural umzukrempeln.
Sehe ich genau so.
Dass 65535+2 != 65537 sondern = 1 in der Computerwelt sein kann, führte zur Sprengung einer Ariane-Rakete, weil ein Programmierer über die Änderung der Flugbahn nicht informiert wurde und den Code nicht modifizierte, so dass es zu einem Überlauf des Wertebereichs einer Variablen kam.

Rundungsfehler sind ein weiteres Problem in der Prozessoren-Welt.

Zitat:
Nach C sollte aber meiner Meinung nach nicht C++ folgen
C++ hat viele fiese Fallstricke, die Mehrfachvererbung war so unglücklich, dass man sie in Java nachher weggelassen hat.

Auch der Kopierkonstruktor hat es in sich:

Was geht hier schief?
Lumen ist offline   Mit Zitat antworten
Ungelesen 07.02.10, 08:42   #23
harbok
Erfahrener Newbie
 
Registriert seit: May 2009
Beiträge: 117
Bedankt: 93
harbok ist noch neu hier! | 0 Respekt Punkte
Standard

Dein Aufruf
Code:
f( d );
erzeugt eine shallow copy, da Du nur mit einer Referenz aufrufst, schreibt dann seinen String, ruft am Ende der Funktion den Destruktor für die shallow copy auf, der wiederrum schließt das File und in der nächsten Zeile in Deiner main()
Code:
d.schreibe( "Und noch eine Zeile\n" );
fliegst Du gegen die Wand, weil das File längst geschlossen wurde.


Wenn ich daneben liege, dann brauche ich einen Compiler, weil ich sonst nichts Falsches sehe.
harbok ist offline   Mit Zitat antworten
Ungelesen 07.02.10, 10:06   #24
Lumen
Newbie
 
Registriert seit: Sep 2009
Beiträge: 72
Bedankt: 21
Lumen ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
fliegst Du gegen die Wand, weil das File längst geschlossen wurde
Richtig.
Zitat:
weil ich sonst nichts Falsches sehe.
Auch richtig.

Der Urheber dieses Skripts empfiehlt, dass man den Kopierkonstruktor private machen soll, damit keine Wertekopie erzeugt werden kann.

private:
std::FILE *f;
// in privater Sektion verstecken!
Datei( const Datei & );
Lumen ist offline   Mit Zitat antworten
Ungelesen 07.02.10, 12:29   #25
harbok
Erfahrener Newbie
 
Registriert seit: May 2009
Beiträge: 117
Bedankt: 93
harbok ist noch neu hier! | 0 Respekt Punkte
Standard

Hmm, ich würde einfach mit einem ptr arbeiten. Das braucht kein neues Objekt auf dem Stack, keinen Kopiervorgang und muss auch keinen Destruktor aufrufen.

Simpler und schneller m.E..
harbok ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.


Sitemap

().