Hilfe hab kein plan?!?!



  • Hallo erstmal,

    eins vorweg, ich bin neu hier und werde mich auch länger hier aufhalten und auch anderen versuchen so gut wie möglich zu helfen 😃 Bisher habe ich nur in Java Programmiert und wollte mir C++ aneignen.

    Meine frage an euch Profis (ja das denk ich von euch) ist folgende:

    in meiner main datei habe ich folgenden Aufruf:

    matrix<int, 1, 4> a{ { -1, 1, -2, 2 } };
    

    Ich verstehe das dass ein Template ist, das ich eine instanz matrix 1X4 erstelle mit dem Namen a. Mein Problem jedoch ist, das ich laut Visual Studio zu viele Initial Werte habe.

    meine matrix.cpp Datei ist diese:

    template <class T, int M, int N>
    class matrix {
    	std::array<T, M*N> d;
    public:
    	matrix() = default;
    	matrix(const std::array<T, M*N> &a) :d(a){}
    
    };
    

    Nach meiner eigenen Recherche komm ich auf den Gedanken, dass

    matrix(const std::array<T, M*N> &a) :d(a){}
    

    ein array initialisiert welches die Initialisierungsliste a bekommt.
    Sehe ich das falsch oder besser gesagt was mache ich falsch....

    Ich hoffe ich nerv euch nicht damit und Ihr lacht mich nicht aus 😛



  • Das

    #include <array>
    
    template <class T, int M, int N>
    class matrix {
    	std::array<T, M*N> d;
    public:
    	matrix() = default;
    	matrix(const std::array<T, M*N> &a) :d(a) {}
    
    };
    
    int main()
    {
    	matrix<int, 1, 4> a{ { -1, 1, -2, 2 } };
    }
    

    wird mit VS2015 übersetzt.

    - matrix.cpp hört sich nicht gut an. Templates werden im Header implementiert
    - Intelisense ist irrelevant. Copy&Paste der Compilermeldung
    - Vollständiges minimales Beispiel mit dem Fehler
    - Compilerversion


Anmelden zum Antworten