Struktur mit unterschiedlicher Array-Größe



  • Also ich versuche ein Objekt in Form einer Struktur zu erstellen,in das Vertexkoordinaten usw. gespeichert werden.
    Dazu benutrze ich Felder.
    Da ich aber nicht z.B: 100000-Große Felder erstellen will.
    Richtet sich ihre Größe nach der Anzahl der Vertexe,Flächen,usw.


  • Mod

    Dann passt die Antwort mit dem vector immer noch. Noch der gut gemeinte Rat (den du aber sicher nicht annehmen wirst und dich in ein paar Wochen darüber ärgerst), die Sprache erst einmal halbwegs vernünftig zu lernen, bevor du komplexe Programme damit schreibst oder gar Grafikbibliotheken benutzt. Selbst in C deutet dein obiger Versuch darauf hin, dass du die Grundlagen von structs und Arrays nicht verstanden hast. Und in C++ fehlen dir zusätzlich noch die allergrundlegendsten Mittel der Standardbibliothek. Wenn du dich erst einmal richtig auskennst, dann fallen dir auch solche Aufgaben ganz leicht. Wenn du hingegen loslegst, ohne dass du dich auskennst, dann funktioniert nichts, dauert ewig, ist umständlich und allgemein sehr frustrierend.



  • Ok.



  • Mit std::vector funktioniert es auch nicht.
    Also man kann sie nicht in einer Struktur oder Klasse verwenden,da der Compiler den Typ nicht erkennt und int,float,usw. erwartet.
    Klar könnte ich es einfach so machen:
    vector<float>Vertex(Vertexanzahl);

    Aber ich will das ganze in einer Klasse haben,da aus dieser Klasse verschiedene Objekte erzeugt werden sollen.
    Also:
    class Objekt
    {
    vector<float>Vertex(Vertexanzah);
    };

    Aber dies geht ja wie bereits erwähnt nicht.

    Außerdem noch eine kleine Frage:
    Wie macht man in diesem Forum beim Nachrichten schreiben,dass bestimmte Textteile als Code dargestellt werden.



  • Codetags, die für C++ sind unter 😞 und :p, einfach einmal am Anfang drauf klicken und einmal am Ende des Codes.
    Dir empfehle ich ein gutes Grundlagenbuch.

    BTW: Ist das ganze Overkill mithilfe von variadic templates die einzelnen Vertexelemente festlegen zu könne. In etwa so:

    template <typename T, std::size_t Dims>
    using simple_vertex  = basic_vertex<T, Dims, vertex_point_position>;
    
    template <typename T, std::size_t Dims>
    using colored_vertex = basic_vertex<T, Dims, vertex_point_position, vertex_point_color>;
    
    // selbes mit vertex_texture_coordinate, vertex_normal_vector, etc.
    

    Das habe ich nämlich gemacht.



  • Ich verstehe das Problem nicht. Was willst du genau machen und wo hackts?

    Ja, du musst **[**code="cpp"] Quellcode hierher kopieren [/code]. Der Button (C++) ist übrigens unten bei den Smileys.



  • Was er sucht sind Konstruktoren und Initlisten, out.



  • Um ehrlich zu sein hab ich schon Grundlagen-Handbücher gelesen,nur hab ich in weiteren Teile übersprungen und im ersten wurde vector nicht erklärt und sowieso wenig der Standardbibliothek,jetzt hab ich aber nochmal den kompletten teil der OOP gelesen.
    Nur hab ich den Sinn und die Verwendung von Templates nicht ganz verstanden.

    Noch kurz ein test,ob das mit dem Code im Forum jetzt funktioniert:

    int main()
    {
        int test;
    }
    


  • coder++ schrieb:

    Um ehrlich zu sein hab ich schon Grundlagen-Handbücher gelesen,nur hab ich in weiteren Teile übersprungen und im ersten wurde vector nicht erklärt und sowieso wenig der Standardbibliothek,jetzt hab ich aber nochmal den kompletten teil der OOP gelesen.
    Nur hab ich den Sinn und die Verwendung von Templates nicht ganz verstanden.

    Noch kurz ein test,ob das mit dem Code im Forum jetzt funktioniert:

    int main()
    {
        int test;
    }
    

    Hmm warum die Code-Tags bei dir nicht funktionieren, verstehe ich nicht 😕 Beim zitieren gehts mal.



  • Und die Codetags von anderen sehe ich auch.



  • Du hast die BB-cods deaktiviert. unter dem textfeld die checkboxen beachten



  • Ok,jetzt geht's mit den Codetags.


Anmelden zum Antworten