Instanz von Komplexer Zahl in Vektor Template ablegen



  • Ich habe ein Klassentemplate vektor (funktioniert mit LONG, INT, FLOAT, DOUBLE)

    template<class T> class vektor
    {
    private:
        unsigned int _sz;
        T* _vekt;
    
    public:
        vektor():_sz(1)
        {
            _vekt = new T[_sz];
            _vekt[0] = 0;
        }
        vektor(unsigned int sz):_sz(sz)
        {
            _vekt = new T[_sz];
            for (unsigned int i=0;i<_sz;i++)
            {
                _vekt[i] = 0;
            }
        }
    ...
    

    sowie eine Klasse CComplex

    class CComplex
    {
    private:
        // Membervariablen
        double _re;
        double _im;
    public:
        // Konstruktoren
        CComplex(double real, double imag);
        ~CComplex(void);
    ...
    

    Nun meine Frage:
    Ich möchte Instanzen von CComplex in vektor ablegen, jedoch meckert der Compiler, dass kein passender Standardkonstruktor in vektor vorhanden ist.
    Ist ja auch klar, denn CComplex besteht ja aus zwei double-Werten, so bräuchte ich ja eigentlich einen Konstruktor, der ein 2-dimensionales Array befüllt, oder?

    Wenn ich nur den Realteil der Komplexenzahl nehme und den Rest weglasse, dann funktioniert es. Also hat der Konstruktor des klassentemplate ein Problem mit den 2 DOUBLE in CComplex.

    Vielen Dank, MfG


Anmelden zum Antworten