C++ grafisches Programmieren?!?

JBO_Zocker

Cadet 3rd Year
Registriert
März 2007
Beiträge
45
Hallo Basler,

Ich beschäftige mich schon eine Weile mit der Materie Webseitenprogrammierung. habe bisher gecoded in PHP, HTML und CSS. nun bin ich auf dem weg C++ zu erlernen. da ich nun schon erfahrungen mit php habe, ist das autodidaktische C++ erlernen nicht das Problem. das Problem besteht darin, dass ich mich frage, wie man ein wirkliche Anwendung Programmieren kann. wenn ich eine Webseite mit php programmiere, dann ist php nur für die berechnungsvorgänge zuständig. die ausgegebene Webseite enthält letztenendes HTML und CSS elemente. wenn ich mir diverse C++ tutorials durchlese, ist das auch nur die Programmierung der berechnungsvorgänge. wenn etwas ausgegeben wird, dann geschieht dies in einem DOS fenster. kann mir jemand sagen, was dafür sorgt, dass man auch etwas mehr als nur die eingabeaufforderung sieht? ich finde der beste Weg eine Programmiersprache zu lernen ist, diese an einem Beispiel Projekt durchzuführen. aber wenn alles nur im DOS fenster steht, dann hat das wohl kaum was mit nem richtigen Anwendungsprogramm zu tun. kann mir vielleicht jemand ein tutorial oder ein Buch empfehlen, in dem die Grafische anwendung von C++ dabei ist?

danke schon mal für eure Antworten

JBO_Z0cker
 
habe jetzt grade mal nur drübergeschaut, aber schau dir das an:
http://www.c-plusplus.de/forum/81596

zusätzlich würde ich mal in meiner (HS-Bibliothek?) nach einem Buch über Software Ergonomie und falls noch keine Kenntnisse vorhanden in OOP ausleihen.
Falls du dann wirklich richtig einsteigen willst kann ein Buch über Software- Engineering nicht schaden um grundlegende VOrgehensweise kennenzulernen
 
JBO_Zocker schrieb:
aber wenn alles nur im DOS fenster steht, dann hat das wohl kaum was mit nem richtigen Anwendungsprogramm zu tun. kann mir vielleicht jemand ein tutorial oder ein Buch empfehlen, in dem die Grafische anwendung von C++ dabei ist?

Hallo,
das ist schlicht und einfach falsch. Programmieren lernt man nicht durch das anglotzen einer grafischen Oberfläche. Programmieren lernt man durch das anwenden von OOP-Anstzen in kleinen Anwendungen, da bedarf es bei leibe keiner GUI. Es gibt großartige Probleme die man so lösen kann, dazu lernt man wie man sie effektiv lösen kann.
Aber falls du wirklich so wild auf eine Grafische Oberfläche bist, dann besorg dir doch einfach eine freie Schach-Oberfläche (da gibts einige) und versuch mal ein Schach-Spiel zu Programmieren. :)
 
DOS-Fenster klingt nach Windows-Programmierung, richtig?

Zu DOS-Zeiten musste man in einen Grafik-Modus umschalten und konnte dann selbst malen - man war für jeden Pixel auf dem Screen selbst verantwortlich. Die Compiler brachten dazu in der Regel alles nötige an Bibliotheken schon mit.

Unter Windows verhält es sich vereinfacht gesagt so, dass einem Windows über API-Schnittstellen alles nötige bereitstellt, was aber auch wieder sehr Low-Level ist. Im Prinzip werden da Funktionen aus den DLLs von Windows aufgerufen und mitbenutzt. Je höher entwickelt aber die Programmiersprache und die Bibliotheken dahinter sind (das Framework) umso weniger Arbeit hat man und muss sich nicht um "Kleinscheiss" kümmern. In den aktuellen Hochsprachen muss man sich zu 99,99% nicht mehr um die API-Schnittstellen kümmern. Am Beispiel C# mit .Net Framework 3 aufwärts sieht man das relativ deutlich: wenn man sich WPF (Windows Presentation Foundation) mal ein wenig ansieht und sich damit beschäftigt, dann wird einem extrem viel aus der Hand genommen und man bekommt dafür dann sogar Hardware-Beschleunigung und andere Leckerlis um die man sich überhaupt nicht mehr kümmern muss. Und die Entwicklungsumgebung Visual Studio gibts ja mittlerweile kostenlos als Express Edition.
 
Warum lernt man Programmieren nur durch das Anwenden von "OOP-Ansätzen" ?
 
Wow! Hier gehst ja ab. Für Windows sind ganz dringend die WindowsForms zu empfehlen. Das Visual Studio (Express) ist da der Platzhirsch. Im selben Athemzuge würde ich auch C# statt C++ nutzen, da es deutlich schicker ist und leichter zu erlernen. Allerdings musst Du Dich da ersteinmal mit objektorientierter Programmierung befassen, was in C++ eh auch dran wäre. Der Vorteil von C#: Es ist die aktuelle Microsoft-Sprache und rennt quasi überall, wo es das entsprechende .NET-Framework gibt, bzw Mono. Der zweite Vorteil von C#: Die WindowsForms sind deutlich einfacher zu entwickeln. Und Punkt 3: MS hat soviel von Java abgeguckt, dass Du nach dem C# auch quasi problemlos Java entwickeln kannst. Dann brauchst Du auch kein PHP mehr für Webanwendungen ;)
 
Oder du lädst dir halt einfach

MS - Visual Studio 2010 Express kostenlos runter und dann kannst dir tolle GUIS zusammen basteln und ein bisschen üben.
 
s4ms3milia schrieb:
Warum lernt man Programmieren nur durch das Anwenden von "OOP-Ansätzen" ?

Weil man heute nunmal Objektorientiert arbeitet, würde ich behaupten. Wenn du keine OOP kannst, bist du verloren auf dem Arbeitsmarkt. So einfach ist das.
 
@2fastHunter: Da warste wohl wieder zu schnell ;) zumindest schneller mit dem Schreiben als Denken!
PHP ist genau so eine objekt-orientierte Sprache wie C++, C# und Java!

@Aprilliaracer: Dann zeig mir mal einen Kernel-Entwickler, der Geld mit der Kernelentwicklung verdient und OOP nutzt :D Es ist längst keine Pflicht! Der Einsatzzweck ist entscheidend.
Wenn ich auf Embedded-Systems programmiere habe ich meist NUR C (und Assembler).
... dann bliebe mir ja nur die Möglichkeit entweder einer anderen Arbeit nachzugehen, weil man damit scheinbar kein Geld verdienen kann oder den Embedded-Platform Konstrukteuren zu sagen, dass sie gefälligst ordentliche Geräte entwickeln sollen, wo auch aufgeblasene Hochsprachen laufen ;) ;) ;)

Also NICHT-OOP macht fast immer dann Sinn, wenns wirklich low-level sein muss und es auf jedes Quäntchen Performance ankommt (ich weiß: es gibt auch Fälle in denen C++ schneller als C ist, aber das ist eigentlich nur der Fall, wenn Klassen und Objekte massiv benutzt werden. Und das ist in der Low-Level Programmierung kaum möglich)
 
Zuletzt bearbeitet:
Hi,

ich kann den meisten hier nur zustimmen. C++ ist zwar eine sehr mächtige Programmiersprache, dafür muss man aber auch wirklich wissen was man macht. GUIs mit der WinAPI zu entwickeln macht keinen Spaß. Da würde ich C# bzw. Java verwenden. Ich würde generell C# oder Java verwenden, wenn es dir um Anwendungsentwicklung geht und nicht um akademische Fragestellungen wie: "Wie sortiere ich eigentlich eine Liste in einer angemessenen Zeit?". Um solche Fragestellungen musst du dich in Java und C# nicht mehr kümmern. (In C++ genaugenommen auch nicht, dafür ist die Implementierung schwieriger und das Argument der akademischen Fragestellung geht verloren.)

Zum Thema: Ich habe mir damals das Buch "C++ für Kids" gekauft. Da war auch gleich eine Vollversion des Borland C++ Builders dabei und GUIs zu entwickeln war kinderleicht.
 
Aprilliaracer schrieb:
Weil man heute nunmal Objektorientiert arbeitet, würde ich behaupten. Wenn du keine OOP kannst, bist du verloren auf dem Arbeitsmarkt. So einfach ist das.

Wurde mir im ersten Semester auch erzählt..
Du willst mir also erzählen C ist quasi tot?

Ontopic:
Lass die Finger weg von GUIs, das hat nicht viel mit Programmieren zu tun. Mir scheint dir fehlt etwas Grundverständnis. Du versuchst deine WEB-Kenntnisse 1 zu 1 auf "richtige" informatik zu übertragen, das funktioniert so nicht. Wenn ich schon lese

dann ist php nur für die berechnungsvorgänge zuständig

Was glaubst du denn worum es sonst geht?

Der richtige Weg C++ zu lernen ist in deinem Fall wohl oder übel das DOS Fenster. Die GUI-Programmierung wird dich nur aufhalten und GUI-Visualstudio-zusammenklicken-oh-es-ist-schön-bunt hat nichts mit Programmieren zu tun.
 
benneque schrieb:
@2fastHunter: Da warste wohl wieder zu schnell ;) zumindest schneller mit dem Schreiben als Denken!
PHP ist genau so eine objekt-orientierte Sprache wie C++, C# und Java!

Nein war ich nicht. Mir ist durchaus bekannt, dass es für PHP eine rudimentäre OOP-Api gibt, so wie sie auch für JS existiert, dennoch hat das reichlich wenig mit echtem OOP zu tun.
Zudem ging ich mal davon aus, dass er noch nichts von OOP gehört hat, sonst hätte er das mit einer anderen Sprache erlernt.
 
Aprilliaracer schrieb:
Weil man heute nunmal Objektorientiert arbeitet, würde ich behaupten. Wenn du keine OOP kannst, bist du verloren auf dem Arbeitsmarkt. So einfach ist das.


Hier werden zwei Dinge vermischt.

1. Programmieren kann man grundsätzlich mit jeder Programmiersprache lernen.

2. Wenn man Softwareentwicklung zum Beruf machen will, dann macht es allerdings schon Sinn eine OO-Sprache zu wählen. OOP wird einfach fast immer nachgefragt. Es gibt natürlich immer Nischen, wo das nicht so ist.
 
s4ms3milia schrieb:
Du willst mir also erzählen C ist quasi tot?

Faktisch ist es in der Welt der Desktop-Anwendungen tot. Eigentlich findet man es heutzutage nur noch in den unteren Schichten von *nix und sehr Hardwarenahen anwendungen, meist kombiniert mit Assambler.
Was ich damit sagen will: Wenn du C++ Programmierst, dann solltest du auch Objektorientiert programmieren, nicht prozedural. Wenn einem diese Sprache schon diese mächtigen Werkzeuge anbietet, dann sollte man diese auch nutzen, denn sie erleichtern einem das leben und ermöglichen ein schnelles Entwickeln von komplexen Anwendungen.

2fastHunter schrieb:
Nein war ich nicht. Mir ist durchaus bekannt, dass es für PHP eine rudimentäre OOP-Api gibt, so wie sie auch für JS existiert, dennoch hat das reichlich wenig mit echtem OOP zu tun.
Zudem ging ich mal davon aus, dass er noch nichts von OOP gehört hat, sonst hätte er das mit einer anderen Sprache erlernt.

PHP hat einige OOP ansätze, die eigentlich schon nichtmehr als rudimentär zu werten sind. Natürlich reichen die keinesfalls an die Ansätze eines Java oder C# heran, bietet aber schon einiges.
 
Ich glaube ihr weicht ein wenig vom Thema ab. Es geht mir nicht darum eine programmiersprache zu finden und ich hab mit php auch bereits oop Elemente kennen gelernt. Danke trotzdem für den Hinweis auf c#.
 
Aprilliaracer schrieb:
Faktisch ist es in der Welt der Desktop-Anwendungen tot. Eigentlich findet man es heutzutage nur noch in den unteren Schichten von *nix und sehr Hardwarenahen anwendungen, meist kombiniert mit Assambler.

Das ist großer Quatsch! Objektorientiertes Denken ist schon gefragt und wird sicher auch mal in dem ein oder anderem Bewerbungsgespräch überprüft, trotzdem wird noch viel mehr prozedural gearbeitet als man denken mag. Teilweise pflegen Firmen Produkte, die über Jahre gewachsen sind und bei denen es quasi unmöglich ist diese in ein objektorientiertes Design zu überführen. Richtig ist, dass bei Neuentwicklungen meist ein objektorientiertes Design zu Grunde liegt. Die meiste Zeit verbringt der Entwickler aber leider mit der Pflege und Wartung älterer Systeme.
 
Bay-Breeze schrieb:
Das ist großer Quatsch!

Nein.

Bay-Breeze schrieb:
Objektorientiertes Denken ist schon gefragt und wird sicher auch mal in dem ein oder anderem Bewerbungsgespräch überprüft, trotzdem wird noch viel mehr prozedural gearbeitet als man denken mag.
Bei den Firmen bei denen ich bisher angeklopft habe, bist du ohne OOP verloren.

Bay-Breeze schrieb:
Teilweise pflegen Firmen Produkte, die über Jahre gewachsen sind und bei denen es quasi unmöglich ist diese in ein objektorientiertes Design zu überführen.
Korrekt, das liegt aber meist an den verwendeten Programmiersprachen. Wenn du also Kenntnisse von den Vorgängern der "modernen" Sprachen hast (COBOL & Co), bist du da genau richtig. Bei C musst du da schon häufiger suchen.

Bay-Breeze schrieb:
Richtig ist, dass bei Neuentwicklungen meist ein objektorientiertes Design zu Grunde liegt. Die meiste Zeit verbringt der Entwickler aber leider mit der Pflege und Wartung älterer Systeme.

Wobei die wirklich alten Haudegen nur noch bei Banken anzutreffen sind, gelegendlich auch noch hier und da in dem ein oder anderen größeren Industrieunternehmen.

Inzwischen dürfte auch die Mehrheit Pflegefälle schon OOP-Projekte sein.
 
Zurück
Oben