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, 18:10   #2
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 06.02.10, 20:25   #3
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   #4
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   #5
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   #6
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   #7
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   #8
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 00:25 Uhr.


Sitemap

().