Projekte mit mehreren Klassen, wohin mit den #includes?
-
Welche GUI-IDE ist denn ansonsten so zu empfehlen?
Klar ist Delphi nicht = C++ aber wenn man so oder so am Anfang des Werdeganges ist, spart man sich so eventuell das lernen einer kompletten GUI-IDE. Ich kenne halt die Elemente von VCL schon und kann mich so auf C++ konzentrieren.
Vorher habe ich es kurz mit Qt versucht aber ich bin jedes mal voll gegen die Wand gefahren weil ich alle 5 Minuten dinge googlen musste, deren Funktionsweise ich beim C++-Builder schon kenne.
-
Bin mir grad nicht sicher, was du mit "GUI-IDE" meinst. Welche IDE du verwendest, ist ziemlich egal (außer vielleicht C++ Builder, wenn er sich nicht ohne VCL verwenden lässt).
Du solltest halt erstmal keine GUI Projekte schreiben. Konzentriere dich allein auf die Sprache. Erst wenn du die Sprache ausreichend verstanden hast (mag hört oft, dass man für C++ ein halbes Jahr braucht), kannst du mit GUI Projekten anfangen.
-
Wie gesagt, C++ programmiere ich schon eine weile. Hab schon diverse Konsolen-Programme geschrieben und will jetzt auch kleinere GUI-Projekte starten. (Dabei soll es nicht wirklich um die GUI gehen, ein RayTracer hat ja auch nicht viel damit zutun.)
GUI-IDE, Irgendeine Entwickler-Umgebung bzw. C++-Libary, die GUIs unterstützt und möglichst so professionell ist, das man nicht andauernd wechseln muss.
-
Ich hatte jetzt aber nicht den Eindruck, dass du schon ausreichend gut C++ kannst
Die Frage nach Vorwärtsdeklarationen, Includes, "main", eine Vektorklasse die irgendwelche GUI-Eingaben kennen sollte... Es fehlt anscheinend noch sehr viel an Verständnis. Das lernt man am besten mit guten Grundlagenbüchern.
Man kann es natürlich auch über den Learning-By-Doing Ansatz probieren. So hab ich das früher mit Delphi gemacht. Auch viel programmiert, ohne es genau zu verstehen. Hab dann erst später verstanden, was ich eigentlich genau gemacht habe. In C++ dann genau so. Aber so hab ich Jahre gebraucht, um C++ halbwegs zu verstehen, wenn man das richtig angeht, geht es schneller.
-
Na dann kamen meine Fragen wohl schlimm an.
Ich bin halt nicht so fit mit den includes bei solchen vorangelegten Projekten und dem aufteil von Deklaration und Definition. Die Vektorklasse sollte nur ne einfache Möglichkeit der Ausgabe während der Entwicklung haben und ich dachte, der C++-Builder hat da seine eigene klassen.
Aber mal zurück zur klasse, was für Libaries benutzt man am besten für GUIs? (es geht letztendlich wirklich nur um ein Fenster, auf dem ich in ruhe Pixel zeichnen kann um meinen rayTracer zu programmieren.
)
-
Es gibt noch viel mehr Sachen in C++, die man kennen sollte. Ich sprech das aus Erfahrung
Ich hatte auch schon recht viel Erfahrung in Delphi, C# und Java und bin trotzdem nicht mit C++ zurechtgekommen. Es gibt einfach sehr viele Sachen, die man aus anderen Sprachen nicht gewohnt ist. Und dann gibts noch viele Idiome usw., die man kennen sollte. Ich vermute einfach, wenn du schon Probleme mit includes und ähnlichem hast, dass es noch viel mehr in C++ gibt, was du noch nicht kennst. Ich war auch selbst mal in der Phase, wo ich keine Ahnung hatte, aber dachte, ich wüsste genug, um an Projekten mitzuarbeiten.
Was GUI Bibliotheken angeht. Ich persönlich kenne mich am besten mit Qt aus, das benutzen wir in der Arbeit. GTK+ (bzw. gtkmm in C++) und wxWidgets werden ähnlich gut sein, hab damit aber nicht sehr viel gemacht. Das sind auch die Frameworks, die man in richtigen Projekten am ehesten vorfindet. MFC ist völlig veraltet, findet man leider aber immer noch recht häuftig. C++ Builder und VCL ist glaube ich nur eine Spielerei, kann mir jetzt nicht vorstellen, dass es tatsächlich professionell eingesetzt wird, hab sowas noch nie gehört.
-
Na an Projekten will ich nicht mitarbeiten, dass will ich niemanden antun.
Aber ich muss halt irgendwo üben und da wir nächstes Semester C++ haben, bin ich zuversichtlich, dass ich spätestens dann noch nen ordentlichen Schub bekommen möchte.
Ich bin ja keiner von denen, die kaum C++ können aber schon ihr erstes 2D-Game programmieren müssen.
-
ruhig_brauner schrieb:
Aber ich muss halt irgendwo üben und da wir nächstes Semester C++ haben, bin ich zuversichtlich, dass ich spätestens dann noch nen ordentlichen Schub bekommen möchte.
Will dich nicht enttäuschen, bin da aber auch etwas skeptisch
An Hochschulen wird sehr oft ziemlich schlechtes C++ gelehrt.
-
Na dann muss ich wohl doch nochmal den dicken Schmöker raus hohlen.
-
Muss gar nicht so dick sein... Was mir z.B. am Anfang weitergeholfen hat, waren die Bücher von Scott Meyers, und die sind nicht dick.
-
Bei meinen Recherchen kamen zum Schluss meist Bücher zwischen 500 und 1000 seiten raus und an sich ist 500 ja schon ausreichend dick.
-
Ich hätte doch nochmal ne Frage. Inzwischen klappt das mit dem Deklarieren und Definieren ganz gut aber wenn ich compile erklärt der mir irgendetwas von "Zeile 500000 von Zeile 500000" (weiß nicht, woher die Zeilen kommen) und das Compilieren dauert knapp ne Minute und er hängt sich zwischenzeitlich auf, obwohl ich bis jetzt kaum was getippt habe. Ist das normal?
Habe folgendes eingebunden:
in der main.h habe ich Vector3.h eingebunden
in der Vector3.h steht die Deklaration mit vielleicht 5 Funktionen
in der Vector3.cpp steht die Definition der Funktionen und es wird Vector3.h inkludiertGibts da irgendwo n Problem?
-
...
-
Mhhh, doch.
Ich hab es nochmal mit nem alten Projekt versucht, was nen ähnlichen Umfang hat. Da verschwindet das Build-Femster schneller aber das Programm braucht dann trotzdem ewig, um zu starten.
Viel mehr habe ich bis jetzt wirklich nicht mit dem Projekt gemacht. Ich gucke gleich nochmal, ob ein Systemneustart vielleicht geholfen hat. (Da merkt man mal, wie verzweifelt ich schon bin...)
Ich kann dir den ganzen Quelltext schicken, aber selber erstellt habe ich wirklich nicht viel. Trotzdem machen?
Edit: Systemneustart hat geholfen. Ich sollte wirklich mal mein System neu aufsetzen. o.o Und sowas schimpft sich Informatik-Student.
-
ruhig_brauner schrieb:
Na an Projekten will ich nicht mitarbeiten, dass will ich niemanden antun.
Aber ich muss halt irgendwo üben und da wir nächstes Semester C++ haben, bin ich zuversichtlich, dass ich spätestens dann noch nen ordentlichen Schub bekommen möchte.
Dann lass GUI und ins besondere VCL bitte erst einmal sein. Du schießt dir mit beiden in das eigene Bein. Zudem wird es dir auch in der Berufspraxis nicht viel helfen:
1. Es gibt nicht _die_ C++ GUI, und die VCL ist auch nicht unbedingt die verbreitetste (auch wenn es in einigen Firmen, wie meiner derzeitigen, tatsächlich eingesetzt wird). Und um es noch besser zu machen: Die GUI-Bibliotheken unterscheiden sich teilweise so extrem, das es nur eine kleine Schnittmenge gibt.
2. Die VCL ist für das Lernen von C++ sehr kontraproduktiv, du lernst maximal die VCL, nicht aber C++ kennen.
-
Na wenn ihr mir das alle so sagt, werde ich wohl erstmal nischt mit ner GUI machen. Eigentlich wollte ich fürs erste nur n Ray Tracer basteln, da ist OpenGL ja so oder so sinnvoller.
(Kenne wie gesagt die Zeichenfunktionen u.ä. beim C++ Builder schon, würde mir also Zeit sparen.)
Aber was sollte man dann überhaupt Programmieren, wenn man C++ üben möchte?
Irgendwann muss man doch auch mal Projekte starten und zu Ende bringen.
-
Ich find den Raytracer jetzt vielleicht gar nicht so verkehrt als Projekt... Anfangen ist halt schwierig, vor allem wenn man kein Anfänger ist. Ich habs ja selber so gelernt, als ich ernsthaft mit C++ angefangen habe, war ich schon lang kein Anfänger mehr und hab das auch nicht step by step gelernt sondern dann direkt anhand größerer Projekte.
Raytracer ist halt so eine Sache. Da ist wahrscheinlich viel OpenGl und paar Algorithmen dabei, aber wenig C++. Das könntest du sehr ähnlich in C schreiben.Ich würde zuerst zumindest die Bücher von Meyers und Sutter lesen, um ein besseres Verständnis für die Sprache zu bekommen.
-
Naja, wenn man das klassenorientiert macht, wieso mit C rumärgern? (Ich bin bis jetzt wirklich ein OOP fan,...)
Erstmal anfangen.