Ich habe diesen Fehler seit einiger Zeit bekommen, und ich habe keine Ahnung, wie Sie es beheben. Ich suchte hier nach ähnlichen Problem auf Stack-Overflow, aber ich habe nichts gefunden.Fehler: 'Vorlage <class T> Klasse Dynamic_Array' ohne Template-Parameter verwendet
QUELLCODE:
template <typename T>
class Dynamic_Array
{
private:
T* actual_array;
unsigned int number_of_elements;
public:
Dynamic_Array() {}
~Dynamic_Array() {delete[] actual_array;}
unsigned int get_size() const {return number_of_elements;}
T& operator [](unsigned int index) {return actual_array[index];}
void operator +=(T&);
void operator -=(unsigned int);
};
template <typename T> /*Not sure if this is needed, but compiler doesn't mind, still prints the same error*/
void Dynamic_Array<T>::operator+=(T& object)
{
if(number_of_elements>1)
{
T* temp_array = new T[number_of_elements];
for(unsigned int i=0;i<number_of_elements;i++)
{
temp_array[i]=actual_array[i];
}
delete[] actual_array;
actual_array = new T[number_of_elements+1];
for(unsigned int i=0;i<number_of_elements;i++)
{
actual_array[i]=temp_array[i];
}
delete [] temp_array;
temp_array=NULL;
actual_array[number_of_elements]=object;
number_of_elements++;
}
else
{
number_of_elements++;
actual_array = new T[1];
}
}
void Dynamic_Array<T>::operator-=(unsigned int index)
{
T* temp_array = new T[number_of_elements-1];
for(unsigned int i=0, j=0;i<number_of_elements;i++)
{
if(i!=index)
{
temp_array[j]=actual_array[i];
j++;
}
}
delete[] actual_array;
number_of_elements--;
actual_array = new T[number_of_elements];
for(unsigned int i=0;i<number_of_elements;i++)
{
actual_array[i]=temp_array[i];
}
delete [] temp_array;
temp_array = NULL;
}
Nach Compiler ist der Fehler in der Leitung 18 (die leeren zwischen "}", und "template"
Wie gesagt, ich habe keine Ahnung was ich oben geschraubt, so dass jede Hilfe sehr geschätzt wird.
F oder Ihr nächster Fehler: [Rule of Three/Five/Zero] (http://en.cppreference.com/w/cpp/language/rule_of_three) – Barry
Nein, es ist kurz nach der Klassendeklaration. – XONX
Bitte geben Sie eine [mcve] an. – Barry