oksosaa Δημοσ. 25 Φεβρουαρίου 2010 Δημοσ. 25 Φεβρουαρίου 2010 Τί αξία έχουν τα tamplates σε σχέση με τις κλάσεις? και ένα παράδειγμα αν παραθέσετε θα είμαι ευγνωμων! thanks
3c0r1z Δημοσ. 25 Φεβρουαρίου 2010 Δημοσ. 25 Φεβρουαρίου 2010 Τα templates συνήθως χρησιμοποιούνται όταν θέλεις να υλοποιήσεις κάποιον αλγόριθμο ή κάποια δομή δεδομένων ανεξάρτητα από τον τύπο μιας μεταβλητής. Η STL είναι γεμάτη από τέτοιες δομές π.χ. vector, list, deque. Ένα κλασσικό παράδειγμα είναι και το ακόλουθο: >#include <iostream> template<typename T> inline const T& Max(const T& left, const T& right) { return left < right ? right : left; } int main() { int num = 45; std::cout << Max(num, 22) << '\n'; float fnum = .8f; std::cout << Max(3.15f, fnum) << '\n'; return 0; } Επίσης είναι δυνατόν μέσω των templates να υλοποιήσεις στατικό πολυμορφισμό χωρις να υπάρχουν base και derived κλάσεις. >#include <iostream> class Foo { public: Foo(){} void SayHello() const { std::cout << "Foo" << '\n'; } }; class Bar { public: Bar(){} void SayHello() const { std::cout << "Bar" << '\n'; } }; template <typename T> void FooBar(const T& obj) { obj.SayHello(); } int main() { Foo foo; FooBar(foo); Bar bar; FooBar(bar); return 0; } Αυτά ήταν κάποια παραδείγματα. Καλύτερα είναι όμως να διαβάσεις κάποιο (καλό) βιβλίο γιατί δεν μπορεί να καλυφθεί το θέμα των templates σε μερικά posts.
oksosaa Δημοσ. 25 Φεβρουαρίου 2010 Μέλος Δημοσ. 25 Φεβρουαρίου 2010 Αν έχεις να μου προτείνεις κάτι καλό θα ήταν.Η κάποιο tutorial. Εχω κάποια βιβλία αλλά τα έχει περιλιπτικά. Είναι βασικά τα templetes για τον αντικειμενοστραφή προγραμματισμό?
3c0r1z Δημοσ. 26 Φεβρουαρίου 2010 Δημοσ. 26 Φεβρουαρίου 2010 Ένα βιβλίο αποκλειστικά για templates είναι το παρακάτω: http://www.amazon.com/Templates-Complete-Guide-David-Vandevoorde/dp/0201734842/ref=sr_1_1?ie=UTF8&s=books&qid=1267193037&sr=8-1 Βέβαια η ανάγνωσή του είναι λίγο δύσκολη γιατί τις περισσότερες φορές έχει κάποια σύντομα παραδείγματα και όχι ολοκληρωμένα προγράμματα. Λίγο πιο κατανοητά είναι στο παρακάτω βιβλίο: http://www.amazon.com/Primer-4th-Stanley-B-Lippman/dp/0201721481/ref=sr_1_1?ie=UTF8&s=books&qid=1267193842&sr=1-1 Το θέμα εδώ είναι ότι το βιβλίο αφιερώνει ένα κεφάλαιο για templates, και δεν ξέρω αν θέλεις να το αγοράσεις και για πιο σκοπό το θέλεις, ή αν μπορείς να δανειστείς από κάποια βιβλιοθήκη. Τώρα αν ψάχνεις για κάποιο tutorial δες εδώ: http://www.cplusplus.com/doc/tutorial/templates/'>http://www.cplusplus.com/doc/tutorial/templates/ Γενικά το πρώτο σημείο για να ψάξεις οτιδήποτε έχει σχέση με C++ είναι το site: http://www.cplusplus.com Τέλος ο αντικειμενοστραφής προγραμματισμός δεν περιορίζεται από κάποια γλώσσα ή απο κάποια χαρακτηριστικά μιας γλώσσας. Όταν θα χρειαστείς δυναμικό πολυμορφισμό τότε θα είναι μονόδρομος η υλοποίηση μέσω κληρονομικότητας. Στατικός πολυμορφισμός μπορεί να υλοποιηθεί και με templates.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.