Frage zur Objekterzeugung einer Klasse



  • Hi

    Hab mir gerade einen Quellcode angesehen und werde jetzt einfach nicht schlau aus einem Part bzw. Einer Zeile:

    schicht1=new primarneuron<float>[10][10];
    

    Ich würd gerne wissen was '<float>' bringt bzw. bewirkt.(irgendetwas besonderes ?)

    PS: hab schon einige zeit bei google gestöbert aber leider nichts gefunden. Würd mich über ne kurze Erklärung freuen 😃



  • Das ist sogar etwas ganz besonders Besonderes, das zeigt nämlich, dass primarneuron ein (Klassen)Template und primarneuron<float> eine (Template)klasse ist und float hier als Templateargument fundiert.

    C++ Templates, dazu solltest Du nicht nur googlen, sondern am Besten ein Einsteigerbuch lesen, das ist nämlich ein Riesenbereich, der ganz ganz doll wichtig und superpraktisch ist.



  • Danke 🙂

    Ich glaub das werd ich dann mal tun. Hab mir schon gedacht, dass das etwas besonderes ist. 😃

    Kannst du mit n Buch oder ne Seite empfehlen?



  • Kannst du mit n Buch oder ne Seite empfehlen?

    Templates sollten in jedem Grundlagenbuch (ausführlich*) behandelt werden.

    * Jetzt kann man sich streiten, was bei Templates ausführlich heißt....


  • Mod

    MuTo schrieb:

    Kannst du mit n Buch oder ne Seite empfehlen?

    C++ lernt man nicht mal eben nebenher. Auch nicht einzelne Themen wie "Templates", erst Recht nicht, wenn du bisher noch gar nichts davon gehört hast. C++ ist eine sehr komplexe Sprache, das braucht ein paar Monate, bis man sie halbwegs beherrscht und Quelltext wirklich "Lesen" kann. Buchtipps findest du in meiner Signatur, selbst einführende Anfängerbücher sind gerne mal 1000 Seiten dick.

    Dein Quellcode ist übrigens höchstwahrscheinlich nicht so besonders gut. Es mag zwar ein paar Kontexte geben, in denen solch ein Konstrukt Sinn macht, aber in den allermeisten Fällen, in denen man so etwas sieht, hat der Autor einfach keine Ahnung, wie Objekte in C++ funktionieren.



  • Ich mag http://www.learncpp.com/cpp-tutorial/141-function-templates/, obwohl ich dem Kapitel über Hungarian Notation nicht zustimme.
    Du musst natürlich das gesamte Kapitel 14 lesen, nicht nur Teil 1.



  • das braucht ein paar Monate, bis man sie halbwegs beherrscht

    Das ist stark untertrieben. Zumindest für Programmierneulinge, oder zumindest Menschen die mit dieser Art von Sprache (C, C++, (Java) o.ä.) noch nie gearbeitet haben. Das suggerierst du ja schon durch den ersten Satzteil.



  • Sone schrieb:

    das braucht ein paar Monate, bis man sie halbwegs beherrscht

    Das ist stark untertrieben.

    Klar, C++ ist absolut nicht für Anfänger geeignet.



  • Mit templates fängt man doch auch vorsichtig an.
    Die Verwendung bei einzelnen Funktionen und Klassen, wie z.B: std::vector ist absolut logisch und einfach, außerdem schreibt man kaum templates selber, sondern nutzt hauptsächlich die aus libraries.
    Beschäftigt man sich dann aber intensiver mit templates, merkt man, dass sie ein riesiges und komplexes Thema mit ungeahnten Möglichkeiten ergeben, aber bis man soweit ist, darf man ruhig mal einen Code doppelt schreiben oder auf ein kleines bisschen Stil verzichten.



  • SeppJ schrieb:

    C++ lernt man nicht mal eben nebenher. Auch nicht einzelne Themen wie "Templates", erst Recht nicht, wenn du bisher noch gar nichts davon gehört hast.

    Das hatte ich ganz sicher nicht vor 🙂
    Nur irgendwann muss man mal irgendwo anfangen.
    Hab zwar schon zwei Bücher, aber die sind schon relativ veraltet (um nicht zu sagen uralt). Ich werd mir demnächst mal ein geeignetes Buch zulegen.
    Bei deinen Buchtipps waren ein paar interessante dabei.

    SeppJ schrieb:

    selbst einführende Anfängerbücher sind gerne mal 1000 Seiten dick.

    Ich weis. 😃 hab so nen Schinken zu Hause liegen, aber der ist wie gesagt schon sehr alt und bin im Moment nicht zu Hause.

    Das ich das nicht mal eben an einem Wochenende schaffen kann ist mir klar. Das ist auch nicht mein Ziel.

    nwp3 schrieb:

    Ich mag http://www.learncpp.com/cpp-tutorial/141-function-templates/, obwohl ich dem Kapitel über Hungarian Notation nicht zustimme.
    Du musst natürlich das gesamte Kapitel 14 lesen, nicht nur Teil 1.

    Ja ich glaub aber, dass ich mit diesem komplexen Thema noch ein bisschen warte. Wenn das jetzt nichts Großes gewesen wäre hätte ich mich kurz damit befasst, aber so ist es glaub besser mein Fundament noch ein bisschen zu festigen, bevor ich mit diesem Thema anfange. 🙂

    bemerkung schrieb:

    Klar, C++ ist absolut nicht für Anfänger geeignet.

    Wieso? Wenn ich sowieso darauf hinauswill in dieser Sprache zu programmieren, warum sollte ich dann nicht sofort damit einsteigen? (Hab zwar die Grundlagen der Grundlagen mit Java gelernt.)

    Marthog schrieb:

    Beschäftigt man sich dann aber intensiver mit templates, merkt man, dass sie ein riesiges und komplexes Thema mit ungeahnten Möglichkeiten ergeben, aber bis man soweit ist, darf man ruhig mal einen Code doppelt schreiben oder auf ein kleines bisschen Stil verzichten.

    Ich glaub wenn ich mich dann mit templates befassen will dann auch richtig. 😃 Deswegen warte ich noch n bisschen.


Anmelden zum Antworten