kleiner compilerfehler...



  • #include <iostream>
    
    template <class T>
    class dyn_array
    {
    private:
    T *my_array;
    int index;
    int my_array_length;
    
    public:
    dyn_array();
    //dyn_array(int length);
    //dyn_array(T data);
    //dyn_array(dyn_array &array);
    
    void free_mem();
    T get_data(int);
    int get_index();
    
    void push_back(T);
    void push_front(T);
    //void del(T data);
    //void del(int pos);
    };
    
    //konstruktor
    template <class T>
    dyn_array<T>::dyn_array()
    {
    	int init = 1;
    	index = 0;
    	my_array = new T[init];
    	my_array_length = init;
    }
    
    //öffentliche funktionen
    template <class T>
    void dyn_array<T>::free_mem()
    {
    	int init = 1;
    	index = 0;
    	my_array_length = init;
    	delete [] my_array;
    	my_array = new T [init];
    }
    template <class T>
    T dyn_array<T>::get_data(int pos)
    {
    	return my_array[pos];
    }
    template <class T>
    int dyn_array<T>::get_index()
    {
    	return index;
    }
    
    //öfentlicher datenzugriff
    template <class T>
    void dyn_array<T>::push_back(T data)
    {
    	my_array[index] = data;
    	++index;
    }
    

    bei

    dyn_array<int> array();
      array.get_index();
    

    bekomm ich:

    Fehler: Abfrage des Elementes »get_index« in »array«, das vom Nicht-Klassentyp »dyn_array<int> ()()« ist
    


  • Mit

    dyn_array<int> array();
    

    legst du keine Instanz von dyn_array an, sondern deklarierst eine Funktion array, die keine Parameter übernimmt und einen dyn_array<int> zurückliefert.
    Nimm stattdessen einfach

    dyn_array<int> array;
    

Anmelden zum Antworten