Angenommen, Sie möchten bauen eine C + + -Klasse, um komplexe Zahlen darstellen , da C + + enthält keinen Datentyp für sie. Das " Complex " -Klasse muss mit Zahlen vom Typ int, float und double. Wiederholen Sie den gleichen Code dreimal , oder Sie können es einmal zu schreiben und Vorlagen, die generischen Datentypen unterstützt . Am Ende wird die Klasse wie eine der STL Container-Klassen zu suchen. Anleitung
1
Machen Sie sich mit der Vorlage Syntax , wenn Sie nicht bereits sind. Um eine Vorlage Klasse deklarieren , legen Sie die folgende Codezeile unmittelbar oberhalb der Klassendeklaration , wie gezeigt : Vorlage
class Complex { Twitter //etc. ..
2
Beachten Sie, dass "Vorlage" und "class " keywords sind . "T" ist der Name , den Sie der generische Datentyp. T kann die Form eines int, float oder double. Sie müssen immer beilegen " Klasse " und " T" in spitzen Klammern . Sie können auch das Schlüsselwort " typename " an die Stelle der " Klasse. " Obwohl diese Schlüsselwörter haben eine etwas andere Bedeutung in C + +, für die Zwecke dieses Tutorials , sie sind gleichwertig.
3
Mit " T" in der Klasse Körper zu verwenden, sofern Sie generische Verarbeitung wollen . Mitglied Daten "real " und " IMAG " sind vom Typ T , weil sie die Identität einer beliebigen Anzahl Art nehmen können. Die Member-Funktion Real ( ) mit T Prototypen , weil es Zahlen vom Typ int , float oder double zurückgeben kann : Vorlage
class Complex { Maternity T real, IMAG ;
public:
Complex (const T r , const T i) : real ( (T) 0), ( (T) 0) {} T Real ( ) const ; Twitter //etc. ..
4
Wiederholen Sie den Template-Definition für jedes Mitglied Funktion außerhalb der Klasse Körper definiert. Auch , stellen Sie den Parameter T in spitzen Klammern und legen Sie sie zwischen den Namen der Klasse und den Umfang Operator wie folgt: Vorlage Maternity T Complex :: Real ( ) const {
Rückkehr real; }
5 Demonstrieren ein komplexes Objekt , das verwendet int und eine, die Schwimmer verwendet : int main () {
Complex ni ( 4 , -5 ); //Formular 4 - j5
Complex nf ( 4.f , - 5.f ); //Formular 4.0 - j5.0
cout cout }
6
Erfahren Sie, wie Container-Klassen wie verwenden vector < T> und Algorithmen wie copy () . Studieren Sie die STL . Da der Standard Template Library ist eine generische Bibliothek mit Vorlagen gebaut , es ist ein ausgezeichneter Ort, um zu lernen , wie man generische Klassen anhand von Vorlagen zu bauen.