C++ : Vektor-template-Klasse

Ich habe eine template-Klasse namens " Zelle wie folgt:-

template<class T>class Cell
{
    string header, T data;
}

Nun möchte ich eine weitere Klasse mit dem Namen Zeile. Zeile wird ein Vektor namens Zellen, so dass ich hinzufügen kann, sowohl Zell-und Zell-Typ Elemente, die vector. Ist es möglich?

Wenn ja, wie kann ich das machen?
Vielen Dank im Voraus.

  • Wollen Sie eine Zeile zu halten, zum Beispiel, eine Zelle<int> Zelle<float> und jede andere Zelle Typ in der einen Vektor<>?
  • Ja, du hast Recht. Ich genau das will.
  • ist, die meinen, Sie wollen polymorphe container? Sie können nur dynamische Polymorphie (Vererbung) und nicht statisch polymorpism (Vorlagen).
  • Würden Sie bitte geben Sie mir einige Beispiel-codes für das?
  • "Ich habe eine template-Klasse namens "Cell" Nein, du nicht. Das ist ein - Klasse template, was bedeutet, es ist nicht eine Klasse. Cell<int> ist eine Klasse. Cell<float> ist eine Klasse, wie gut, wie ist Cell<Cell<std::vector<double>>>. Aber es sind drei verschiedene, unabhängige Klassen, die nichts gemeinsam haben.
  • Skizz zur Verfügung gestellt, was genau ich bin reden über.
  • Alle Elemente der Vektor muss vom gleichen Typ sein, also Sie können eine Cell<float> und ein Cell<int> zusammen. Sie benötigen Pointer und Vererbung, und Sie müssen wissen, was Sie tun. Es ist all zu leicht zu erstellen einen nicht verwendbaren Basis-Klasse mit dem Fleisch in die Kinder, und dann haben Sie keine Möglichkeiten, darauf zuzugreifen. Sie brauchen, um Fleisch in der base-Klasse. Das heißt, es muss eine nutzbare Schnittstelle, die nicht davon abhängen, T.

Schreibe einen Kommentar