allgemeine Fragen eines Anfängers zur Programmierung mit C++

ted2.0

Newbie
Registriert
Feb. 2021
Beiträge
3
Ich habe bereits einige Grundkenntnisse in der Programmierung mit C++ (bin aber eben doch noch Anfänger) und was mich bisher an der Programmierung mit C++ stört, ist die Tatsache, dass man nur intern in den Programmieroberflächen (ich kenn bisher code::blocks und visual studio) agieren kann und nicht auf andere Programme, Oberflächen, etc. übergreifen kann. Kommt diese Verbindung zwischen Programmiersprache C++ und anderer Software erst bei höherem Wissensstand zu Stande oder sollte ich vielleicht die Programmiersprache wechseln? Mit freundlichen Grüßen, Ted.
 
"ist die Tatsache..." dein Quellcode ist nur Text, diesen kannst du niederschreiben wie auch immer du magst. Um zu compilieren und linken brauchst du keine ide , hier kommt bei Microsoft in der Regel MSBuild zum Einsatz.
 
ted2.0 schrieb:
Kommt diese Verbindung zwischen Programmiersprache C++ und anderer Software erst bei höherem Wissensstand zu Stande
ja:
  • Compiler kannst du auch so verwenden (und austauschen, solange du nicht compilerspezifische Dinge machst)
  • Editor/IDE kannst du sowieso austauschen
 
  • Gefällt mir
Reaktionen: foo_1337
Ich kann zu Code::Blocks nicht sagen, aber bei VisualStudio wirst du als Anfaenger mit Sicherheit ein Projekt erstellt haben. Und du hast recht, das kannst du nicht unbedingt mit allen anderen Editoren und IDEs oeffnen.

Das liegt aber an der erstellen Visual Studio Projektdatei (sie nennen es Solution). In dieser sind ne Menge Metainformationen (Compiler Flags, Include Pfade, Linker Flags usw. usf.). Das ist Convenience, aber wie meine Vorredner auch schon gesagt haben, nicht zwingend notwendig.

Visual Studio benutzt unter der Haube (wir bleiben jetzt mal bei Windows) den Microsoft Compiler MSVC und MSBuild. Du kannst also nur mit Notepad und einer Kommandozeile bewaffnet C++ schreiben, kompilieren und ausfuehren. Allerdings hast du dann keine "Convenience"-Funktionen um das Projekt mit einem Knopfdruck zu kompilieren, linken und ne Debug-Session zu starten. Das ist dann einfach etwas mehr Handarbeit.

Es gibt auch Tools, die diese Probleme angehen: Convenience und weniger "Vendor Lock-In". Prominentestes Beispiel waere CMake. Fuer CMake schreibst du deine "Projektdatei" als Code in eine Datei, CMakeLists.txt. Darin beschreibst du, wie es Visual Studio im Solution File fuer dich automatisch tut (und welches du mittels GUI in Visual Studio editieren kannst), die Beschaffenheit deines Projekts: Include-Pfade, Source Files, Compiler- und Linkercommands, usw. usf.
CMake generiert dann, je nach Plattform, entsprechende Dateien, die es dir ermoeglichen, sehr einfach dein Projekt zu bauen. CMake kann dir auch beim Bauen und Testen helfen.

Der Clou daran ist, dass CMake breiten Support hat, spricht sehr viele IDEs (u.a. auch Visual Studio) CMake-basierte Projekte oeffnen und bauen koennen.

Ich wuerde dir als blutigem Anfaenger allerdings zunaechst klar von CMake abraten und erstmal die Kommandozeile empfehlen. Die meisten Tutorials diesbezueglich kommen da allerdings aus der Linux-Welt und benutzen GCC. Auch das koenntest du unter Windows benutzen (Stichwort WSL oder MinGW).
 
Für das C++-Lernen brauchst Du streng genommen gar keine Entwicklungsumgebung und auch keinen installierten Compiler: https://www.jdoodle.com/online-compiler-c++14/

Die Frage der "Infrastruktur" (Entwicklungsumgebungen, Build-Systeme) ist wieder eine Welt für sich und weist auf eine Wissenschaft für sich. Sehr komfortable Umgebungen für Einsteiger sind z.B. Visual Studio und Qt-Creator. Den C++-Quelltext kann man in der Regel so schreiben, dass er zwischen verschiedenen Betriebssystemen "kompatibel" ist - und auch in verschiedene Entwicklungsumgebungen "aufgenommen" werden kann. Aber Schritt für Schritt.
 
@kuddlmuddl, Respekt, dass du den Satz verstanden hast ;) Ich versteh ihn selbst nach deiner "richtigen" Antwort nicht :D
 
  • Gefällt mir
Reaktionen: tollertyp
ted2.0 schrieb:
sollte ich vielleicht die Programmiersprache wechseln?
Da du es ja schon selbst angesprochen hast.

Natürlich musst du nicht aber wenn du dich überfordert fühlst würde ich es dir schon empfehlen. Für den Einstieg würde ich eher Javascript oder Python nehmen. Mit denen kommt man schneller zu Erfolgen was denke ich motivierender ist. Mit dem Sprachen hat man eben weniger Kontrolle und weniger Möglichkeiten seinen Code zu Organisieren und Typisieren aber das macht es für den Anfang einfacher und wenn man nur alleine daran Arbeitet braucht man das auch garnicht.
 
  • Gefällt mir
Reaktionen: pcBauer
###Zaunpfahl### schrieb:
Für den Einstieg würde ich eher Javascript oder Python nehmen.
Nein.
Man lernt mit Skriptsprachen wie diesen nicht wie IT funktioniert. Dann kann man es gleich sein lassen.
Andere höhere, richtige Sprachen, gibt es genug. Abseits von diesem pseudomodernen Hippiescheiß. Aber diese Frage wird hier ja regelmäßig gestellt. Redundanz ist hier genug vorhanden.
 
@TriggerThumb87: Und beim Autofahren hast du erst mal gelernt, wie der Motor und das Getriebe funktionieren?

Die Sprache ist ein Mittel. Wer will, kann tiefer ins Detail gehen, wer will kann oberflächlicher bleiben. Je nachdem, was man lernen will.

Und um beim Auto-Vergleich zu bleiben: Man lernt in der Fahrschule das Fahren, und nicht, wie man genau ein Auto fährt. Auch wenn es Anfang angenehmer ist, immer im gleichen Auto zu fahren, weil es vertraut ist. Aber wichtiger ist es, die Konzepte des Fahrens zu lernen. Und ja, gibt Autos, die dafür mehr und Autos, die dafür weniger geeignet sind.

Aber vermutlich kommt von deinem durch Intoleranz geprägten Post ("richtige Sprachen", "pseudomodernen Hippiescheiß") eh kein vernünftiger Beitrag mehr zu dem Thema. Die Intoleranz ist bestimmt auch redundant hier im Forum.
 
  • Gefällt mir
Reaktionen: Miuwa, ###Zaunpfahl### und KitKat::new()
Ich interessiere mich nicht für grundlagenlose Vergleiche. Das Absurde ist, dass gerade bei Python das Debuggen sehr schwierig ist und die Typisierung so unglaublich schwach und die Syntax so intransparent wichtig, dass man als Anfänger Schwierigkeiten hat, Programmcode richtig zu verstehen und Konzepte hinter der Sprache spezifisch und allgemein zu begreifen. Und das betrifft nicht nur Anfänger. Es ist nicht produktiv, wenn ein eigentlicher Syntaxfehler nicht als solcher erkannt wird und einfach dazu führt, dass die Instanz ab da in etwas anderes gecastet wurde, was dir erst im weiteren Programmverlauf an anderen Stellen durch absurde unvorhergesehene Abläufe klar wird.
Es ist nicht produktiv, wenn andere, ausführungsstoppende Syntaxfehler erst gemeldet werden, wenn der entsprechende Codebereich übersetzt wird, bei der Ausführung.
Wenn das alles nicht Frust ist, dann kann derjenige sehr viel Spaß mit Python und co. haben.
Wenn mir beim Autofahren beigebracht wird, dass ich nur beschleunige, wenn ich den kleinen Finger an der rechten Hand hochziehe, dann habe ich den falschen Fahrlehrer. Danke Python. (Angefügt um zu zeigen wie absurd Vergleiche sind.)
Danke für die persönlichen Angriffe und Mutmaßungen. Schönen Sonntag.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Miuwa
Die Sprachen so zu betiteln ist schon irgendwie witzig. "Alter ranziger Scheiß" wäre ja noch ok und diskutabel, aber "pseudomodern"? :D
PS.: Wobei, ich hatte es erst anders gelesen, das passt ja doch :D.

Programmieranfänger sind sowieso mit Syntax beschäftigt erstmal und daran ist nichts auszusetzen. Es bleibt dabei: Man nehme einfach eine Sprache auf die man Bock hat, warum auch immer (innerhalb der Grenzen weit verbreiteter Sprachen).
 
  • Gefällt mir
Reaktionen: KitKat::new()
BeBur schrieb:
Programmieranfänger sind sowieso mit Syntax beschäftigt erstmal und daran ist nichts auszusetzen.

Das stimmt. Daher finde ich es gerade für einen Anfänger richtig, dass übergreifende Konzepte von Anfang an transparent und nachvollziehbar dargestellt werden und somit einfacher richtig erlernt werden können.

BeBur schrieb:
Die Sprachen so zu betiteln ist schon irgendwie witzig.

Ich polarisiere sehr gern, bin dabei aber auch sehr direkt. Das stellt für den Leser Eigenbezug her, er fühlt sich angesprochen. Einige kommen aber damit nicht klar.
 
  • Gefällt mir
Reaktionen: Miuwa
Zurück
Oben