Autor Beitrag
theevilworm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 61



BeitragVerfasst: Mo 16.08.10 17:03 
Hallo,

ein Jahr Informatik-Unterricht ist geschafft. Ich denke, ich habe jetzt rudimentäre Kenntnisse in der Delphi Language (Schleifen, grundlegende Prozeduren, Rekursion). Deswegen möchte ich jetzt privat ein bisschen weiter gehen, weil mich der Unterricht in der Schule langweilt, es geht einfach nicht vorran. Mich hat C++ schon interessiert, als ich noch nicht mal wusste, wie das mit dem Programmieren so geht, also wollte ich da mal "einen Blick drauf werfen".

Hab ein wenig nach C++ IDEs gesucht und bin auf Dev C++ gestoßen. Laut Wikipedia ist wxDev C++ die bessere und aktuellere Version davon, also bin ich im Moment am Downloaden von dieser IDE. Was mich jedoch sehr wundert (und die Frage dieses Threads sein soll), ist das mit der GUI. Gibts bei C++ nicht wie in Delphi eine bequeme Toolbar, von der man Objekte auf die Form zieht und so in ein paar Minuten eine GUI - wenn auch ohne Funktion - erstellt hat?

Als ich googlete nach "C++ Button erstellen" und ähnlichem, kamen nur Ergebnisse, die mir was von der WinAPI erzählten. Ich hab zwar von der gehört und weiß grundlegend, was man darunter versteht, aber drauf zugegriffen hab ich noch nie.

Ich wäre dankbar, wenn mir jemand die Zusammenhänge newbfreundlich erklären könnte :)
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 16.08.10 17:08 
Nein, bei C++ braucht du bestimmte Bibliotheken die dir die Grafik zeichnen, wie zb GTK+ oder wxWidgets. Das wäre das Pendant zur VCL von Delphi. Nur bei C++ kannst du dir halt aussuchen welche Bibliothek du verwendest. Jede hat Vor- und Nachteile, und zu jeder gibts afaik auch visuelle Designer mit denen du Fenster erstellen kannst, so wie in Delphi.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Mo 16.08.10 17:12 
Meiner Meinung nach gibt es zwar auch visuelle Designer, aber keine kann mit der von Delphi mithalten (ausgenommen MS Visual Studio). Eigentlich einer der Hauptgründe, weswegen ich bei Delphi bleibe...

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 16.08.10 17:14 
user profile iconplatzwart hat folgendes geschrieben Zum zitierten Posting springen:
Meiner Meinung nach gibt es zwar auch visuelle Designer, aber keine kann mit der von Delphi mithalten (ausgenommen MS Visual Studio). Eigentlich einer der Hauptgründe, weswegen ich bei Delphi bleibe...


MS Visual Studio macht aber Visual C++, also C++ mit dem MFC (Microsoft Foundation Classes). Demnach wieder n schaß dem Microsoft unter Controlle hat...

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4808
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 16.08.10 17:37 
Unter www.turbomirror.com/ kannst du dir den Turbo C++ Explorer runterladen (etwas nach unten scrollen).
Dieser entspricht dem alten Borland C++ Builder, d.h. du kannst dann weiterhin die VCL-Komponenten benutzen...
Critter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 328
Erhaltene Danke: 3

Windows 7
Delphi 7 Pro.
BeitragVerfasst: Mo 16.08.10 18:09 
Hi,
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
MS Visual Studio macht aber Visual C++, also C++ mit dem MFC (Microsoft Foundation Classes).

und damit genau das, was du oben beschrieben hast: C++ zusammen mit einer Bibliothek wie GTK+ oder wxWidgets. In diesem Fall halt die MFC.

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
Demnach wieder n schaß dem Microsoft unter Controlle hat...

Ob Microsoft oder Borland/Inprice/Embacadero. Macht das wirklich den unterschied? Außer das Microsoft mit geringerer Wahrscheinlichkeit pleite gehen wird?


Generell ist der Vergleich C++ und Delphi nicht richtig. Wenn dann müsste man C++ mit Pascal vergleichen oder eben Delphi mit Visual C++/C++ Builder/Gnu C++ & GTK+/usw.

critter

_________________
Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)
theevilworm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 61



BeitragVerfasst: Mo 16.08.10 18:20 
Okay, anscheinend habt ihr mich überschätzt *g*
Habe verstanden, dass C++ nicht so bequem ist, wie ich dachte, und dass es eine Bibliothek für GUI braucht. Was eine Bibliothek ist, habe ich auch mal irgendwo gelesen, aber das spielt keine Rolle.
Bin gerade jedoch sehr überfordert. In Informatik in der Schule haben wir uns hauptsächlich mit theoretischer Informatik beschäftigt, also Algorithmen kreirt, die irgendwelche Probleme lösen sollen. Erstmal als Struktogramm, dann als Quellcode in Delphi 7. Mit dem ganzen "Drumherum" wie Klassen, Typen, Debugging - was ich als Fortgeschritten ansehe - haben wir uns nicht beschäftigt.

Was mich als erstes vor den Kopf stößt: wxDevC++ lässt zwar als Sprache German wählen, bietet dann aber eine Fehlermeldung, die Sprachdateien seien fehlerhaft! :-/
Auch bin ich total mit der Syntax überfordert. Habt ihr zufällig einen Link parat, der SEHR einsteigerfreundlich die Grundlagen von C++ erklärt? Das C++ Wikibook, was ich gefunden habe, steigt sofort ein, und setzt wohl Grundkenntnisse voraus.

Was ist iostream? Was bedeuten die vielen >> und << in Quelltexten? Was ist coud und cin und sowas? All das habe ich noch nie in Delphi gehört/gelesen? :-O
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 16.08.10 18:23 
Was ich so weiß ist Visual C++ nicht 100% Kompatibel mit der ISO Variante von C++.

BTT: Ich kann das Buch von Stroustrup empfehlen. Setzt nichts voraus und ist ziemlich umfangreich, mit dem lerne ich auch gerade C++.

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Mo 16.08.10 19:44 
Kein Compiler ist 100% kompatibel mit ISO-C++. Das fängt schon mit export an (wird gerade mal von Comeau C++ unterstützt). GCC ist da recht vorbildlich, MS Visual C++ eher weniger. Visual C++ bringt aber auch Abweichungen vom Standard ein, die ich für positiv halte, z. B. die Inline-Assembler-Syntax.

Zu den GUIs:
wxDevC++ beispielsweise ist, wie der Name sagt, auf wxWidgets basiert. Da gibt es für die IDE Code::Blocks ein Designer-Plugin.

Nennenswerte Bibliotheken sind neben der Emba VCL und den Microsoft Foundation Classes (MFC) vor allem gtkmm als C++ Anbindung zu GTK+ sowie Qt. Damit erzielst du auch Plattformunabhängigkeit. Für GTK+ gibt es Glade, für Qt gibt es den Qt-Designer. Es kann allerdings sein, dass du dann unter Windows mit Cygwin Vorlieb nehmen musst.

Am besten dokumentiert ist meiner Meinung nach gtkmm. Du findest auf der GNOME-Entwicklerseite eine recht umfangreiche Einführung: library.gnome.org/de...apter-basics.html.de

ÜBRIGENS: Es ist nicht wirklich üblich, Klassen vor der Algorithmierung zu machen. Machen wir auch nicht und fangen erst jetzt mit OOP an.

Zur Installation von gtkmm guckst du hier: live.gnome.org/gtkmm/MSWindows

Und du wirst auf keinen Fall gezwungen, einen Designer zu benutzen, sondern du kannst die Bibliotheken auch von Hand ansteuern. Egal, was du vor hast, sinnvoll ist auf jeden Fall folgende Herangehensweise:

Erst C++ lernen, Konsolenanwendungen
Dann dir die Ansteuerung des Compilers bzw. die Integration in die IDE genauer ansehen
Dann ein Framework lernen, wie z. B. gtkmm
Dann den Designer lernen
Dann schauen, wie du Designer und Framework kombinierst

Gleich mit GUI anzufangen, ist in C++ absoluter Overkill und führt mit Sicherheit ins Lehre.

Zu theevilworm's Frage: << und >> haben Verschiedene Bedeutungen. Einmal Shift-Left und Shift-Right, einmal für Stream-Operationen. std ist ein Namensraum. Alles, was in

ausblenden C#-Quelltext
1:
2:
3:
4:
namespace std
{
    ...
}


steht, gehört dazu. cout und cin sind Objekte, die die Stream-Objekte, die für die Standardeingabe- und Ausgabe stehen. Du "schiebst" also sozusagen einen String auf cout, wenn du std::cout << "hallo\n"; schreibst. Und wenn du using namespace std; schreibst, kannst du statt std::cout auch cout schreiben. iostream bzw. iostream.h sind Header. Du könntest es stattdessen auch im C-Stil machen:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
// entspricht C: #include <stdio.h>
#include <cstdio>

int main()
{
    printf("Hallo Welt!\n");
    return 0;
}


Allerdings hat die C++ Variante einige Vorteile. Sie ist halt nur beim Lernen der Sprache am Anfang hinderlich.

<< und >> können aber fast jede beliebige Bedeutung haben: In C++ kannst du ziemlich leicht Operatoren überladen.