Template-Klasse T-Array

Ich habe ein (was einfach sein sollte) Zuordnung in meine C++ - Klasse.

Hier ist die Aufgabe:
Erstellen Sie eine Vorlage-Klasse enthält zwei private Daten Mitglieder: T * int-array und Größe. Verwendet die Klasse einen Konstruktor zuweisen, das array basierend auf der Größe eingetragen. Es ist member-Funktion, die ermöglicht dem Benutzer, füllen Sie das array basierend auf der Größe. Darüber hinaus gibt es eine member-Funktion sortiert das array und zeigt die sortierten Elemente. Verwenden Sie den Destruktor zu löschen, das array. Entwickeln Sie die Funktion main( ) zwei Objekte zu nennen member-Funktionen. Als ein Ergebnis, das erste Objekt, halten Sie seine array von Typ double, und die anderen halten Ihre array von Typ int.

Hier ist was ich kam mit, sondern kommt mit einer Fehlermeldung "Zuordnung der unvollständigen Typ 'T'":

#include <iostream>
#include <new>
#include <vector>
using namespace std;
template <class T>
class DynArray {
protected:

int size;
T ** DynamicArray = new T[size];

public:
DynArray(){
void CreateArray(){
cout << "Enter size of Array: ";
cin >> size;
for (int i = 0; i < size; ++i){
DynamicArray[i] = new T();
}
for (int i = 0; i<size; i++) {
cout << "Element " << i << ": ";
cin >> DynamicArray[i];}
}
//Sort Array
void Sort(T a[], int size)
{
int idx, pass;
for (pass=0; pass<size; ++pass){
for (idx=0; idx<size-1; ++idx){
if (a[idx] > a[idx+1])
swap(a[idx], a[idx+1]);}
}
for (int i=0; i<size; ++i) {
for (idx = 0; idx<size-1; ++idx) {
cout << a[idx] << " ";
}
}
}
void DeleteArray(){
for (int i = 0; i < size; ++i){
delete DynamicArray[i];
}
delete[] DynamicArray;
}
};
int main() {
DynArray<class T>();
return 0;
}

Nicht sicher, ob ich bin ein völliger retard in meine Linie des Denkens, oder, wenn ich bin fehlt nur noch ein kleines element. Jede Hilfe ist toll.

Danke @jblixr und @user3655463 für Ihre Hilfe. Ich habe es geklappt, ich denke, nach euren Tipps und Hilfe.
Hier ist, was ich kam mit der Referenz, wenn jemand arbeitet.

#include <iostream>
#include <new>
#include <algorithm>
using namespace std;

//Template Class T
template <class T>
class DynArray {
protected:
    int size;
    T * DynamicArray;
public:
    DynArray(){};
    DynArray(size_t s): size(s) {
        DynamicArray = new T[size];
        for (int i = 0; i<size; i++) {
            cout << "Element " << i << ": ";
            cin >> DynamicArray[i];

        }
    }
    //Sort Array
    void Sort(){
        sort(DynamicArray, DynamicArray+size);
        for (int i=0; i<size; i++) {
            cout << DynamicArray[i] << endl;
        }
    }

    //Clear Heap
    ~DynArray() {
        delete []DynamicArray;
    }
};

int main() {
    int sizeOfArry;
    cout << "Enter size of Array: ";
    cin >> sizeOfArry;

    //Use as an int Array;
    DynArray<int> intArray = DynArray<int>(sizeOfArry);
    intArray.Sort();
}

InformationsquelleAutor B. N. | 2016-11-18

Schreibe einen Kommentar