Hallo,
C++ ist zwar eine der "mächtigsten" Sprachen, aber leider auch eine der komplexesten.
das darf man wohl mit Fug und Recht behaupten - obwohl ich gefühlsmäßig sagen würde, dass diese Einschätzung auf Java auch zutreffen könnte. Ich kenne Java aber nur vom flüchtigen Ansehen, kann das also nicht wirklich beurteilen.
Java hat deutlich weniger "Fallstricke" als C++, wodurch es gerade für Anfänger einfacher zu erlernen ist. Zu nennen wäre da die automatische Speicherverwaltung mittels eines Garbage Collectors und das völlige Fehlen von Zeigern. Außerdem ist Java nicht wie C++ weitestgehend C-kompatibel und man kann daher gar nicht erst auf die Idee kommen C zu programmieren.
Irgendwo hab ich dann noch ein Tutorial für ein "Hallo Welt!"-Programm gefunden aber das reicht mir nicht. Viele andere Seiten zu dem Thema scheinen sehr veraltet.
Ja, leider ist ebenfalls ein Großteil der Bücher hoffnungslos veraltet ...Das ist aber IMHO gar nicht schlimm, wenn man eine Sprache wie C/C++ lernen möchte, die schon lange existiert. Wenn man nach einem älteren Buch lernt, bekommt man vielleicht nicht die "bleeding edge news" mit, aber doch eine gute Grundlage. Und Neuerungen in bestimmten Themenbereichen kann man sich auch später noch anlesen.
Es gibt keine Sprache C/C++. C und C++ sind eigenständige Programmiersprachen mit grundlegend anderen Denk und Arbeitsweisen. http://david.tribble.com/text/cdiffs.htm, wenn dich interessiert was so alles in C geht und in C++ nicht.
Das Problem mit den alten Büchern ist, dass sie nur selten die Möglichkeiten von C++98 und vorallem der STL nutzen. Wenn das Hallo-Welt-Beispiel mit #include <iostream.h> und void main() anfängt, dann ist das seit über 10 Jahren schlicht und einfach falsch. Korrekt muss es #include <iostream> und int main() heißen.
Außerdem fangen viele Bücher viel zu früh mit Zeigern und char-Arrays an. Für Zeichenketten gibt es in C++ std::string und mit auf dem Stack angelegten Variablen (statt new/delete) und Referenzen kommt man auch recht weit. Sowieso tut man gut daran new/delete soviel wie möglich zu vermeiden. Für dynamische Arrays gibts schließlich std::vector<> und für viele andere Fälle passende Smartpointer, die sich um das Freigeben des Speichers kümmern.
Auch wenn es C++ schon sehr lange gibt, so entwickelt sich die Sprache trotzdem immer noch weiter. Schau dir mal die Boost-Bibliotheken an, wenn dich interessiert was mit "modernem" C++ alles möglich ist und ich denke so hat man vor 10 Jahren C++ noch nicht verwendet.
Ich habe auch einen Artikel (leider auch auf Englisch) gefunden, in dem es darum ging welche API man verwenden sollte weil man sich auf die Standard-Schnittstelle wohl nicht immer verlassen kann.
Welche Standard-Schnittstelle mag hier gemeint sein?
Ich könnte mir vorstllen, dass die Standardschnittstelle für Windows-Betriebssysteme, die WinAPI gemeint war.
Gruss,
OhneName