User Tools

Site Tools


cpp:class_templates

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revisionBoth sides next revision
cpp:class_templates [2019/05/03 14:40] – created gthanoscpp:class_templates [2019/05/03 15:04] gthanos
Line 33: Line 33:
 </code> </code>
  
-H παραπάνω κλάση μπορεί να παράγει διαφορετικούς τύπους δεδομένων, ανάλογα με τον τύπο **T**. Στο παρακάτω παράδειγμα έχουμε ένα μία κλάση **Box<int>**, μία κλάση **Box<double>** και μία κλάση **Box<Student>**.+H παραπάνω κλάση μπορεί να παράγει διαφορετικούς τύπους δεδομένων, ανάλογα με τον τύπο **T**. Στο παρακάτω παράδειγμα έχουμε ένα μία κλάση **Box<int>**, μία κλάση **Box<double>** και μία κλάση **Box<Student*>**.
  
 <code cpp BoxUsage.cpp> <code cpp BoxUsage.cpp>
 +#include <iostream>
 #include "Box.hpp" #include "Box.hpp"
 #include "Student.hpp" #include "Student.hpp"
Line 46: Line 47:
   Box<double> d(4.23);   Box<double> d(4.23);
   Student george = {"George", 1234};   Student george = {"George", 1234};
-  Box<Student> studentBox(george);+  Box<Student*> studentBox(&george); 
 +}
 </code> </code>
 +
 +===== Ένα πιο σύνθετο παράδειγμα =====
 +
 +Ας υποθέσουμε ότι θέλουμε να κατασκευάσουμε ένα στατικό πίνακα (συγκεκριμένης χωρητικότητας) για την αποθήκευση πληροφορίας. Σε αναλογία με την κλάση **Box<Τ>** θέλουμε να φτιάξουμε ένα πίνακα στον οποίο να μπορούμε να αποθηκεύσουμε διαφορετικούς τύπους δεδομένων.
 +
  
  
  
cpp/class_templates.txt · Last modified: 2020/05/25 06:52 (external edit)