cpp:class_templates_specialization
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cpp:class_templates_specialization [2020/05/01 15:02] – gthanos | cpp:class_templates_specialization [2022/05/26 10:47] (current) – [Εξειδίκευση της κλάσης Box στην περίπτωση που η παράμετρος είναι δείκτης σε χαρακτήρα] gthanos | ||
---|---|---|---|
Line 8: | Line 8: | ||
#ifndef _BOXTPTR_HPP_ | #ifndef _BOXTPTR_HPP_ | ||
#define _BOXTPTR_HPP_ | #define _BOXTPTR_HPP_ | ||
+ | |||
#include " | #include " | ||
+ | |||
template< | template< | ||
class Box< | class Box< | ||
Line 79: | Line 81: | ||
Παρακάτω παρατίθεται κώδικας ο οποίος χρησιμοποιεί την παραπάνω εξειδίκευση του // | Παρακάτω παρατίθεται κώδικας ο οποίος χρησιμοποιεί την παραπάνω εξειδίκευση του // | ||
- | <code cpp BoxPtrUsage.hpp> | + | <code cpp BoxPtrUsage.cpp> |
#include < | #include < | ||
#include " | #include " | ||
Line 114: | Line 116: | ||
</ | </ | ||
- | ===== Εξειδίκευση της κλάσης Box στην περίπτωση που η παράμετρος είναι δείτης σε χαρακτήρα ===== | + | ===== Εξειδίκευση της κλάσης Box στην περίπτωση που η παράμετρος είναι δείκτης σε χαρακτήρα ===== |
Το παραπάνω παράδειγμα είναι ικανοποιητικό εάν περαστεί ως δείκτης ένα αντικείμενο τύπου **int* ** ή **Student* **, όμως δεν είναι ικανοποιητικό εάν περαστεί ένας δείκτης τύπου **char* ** που αντιπροσωπεύει ένα C string. Σε αυτή την περίπτωση δεν αρκεί να δεσμευθεί η μνήμη για ένα χαρακτήρα, | Το παραπάνω παράδειγμα είναι ικανοποιητικό εάν περαστεί ως δείκτης ένα αντικείμενο τύπου **int* ** ή **Student* **, όμως δεν είναι ικανοποιητικό εάν περαστεί ένας δείκτης τύπου **char* ** που αντιπροσωπεύει ένα C string. Σε αυτή την περίπτωση δεν αρκεί να δεσμευθεί η μνήμη για ένα χαρακτήρα, | ||
Line 121: | Line 123: | ||
#ifndef _BOXCHARPTR_HPP_ | #ifndef _BOXCHARPTR_HPP_ | ||
#define _BOXCHARPTR_HPP_ | #define _BOXCHARPTR_HPP_ | ||
+ | |||
+ | #include " | ||
+ | #include < | ||
+ | |||
template <> | template <> | ||
class Box<char *> { | class Box<char *> { | ||
Line 181: | Line 187: | ||
<code cpp BoxCharPtrUsage.cpp> | <code cpp BoxCharPtrUsage.cpp> | ||
#include < | #include < | ||
- | #include " | + | |
- | #include "Student.hpp" | + | #include "BoxCharPtr.hpp" |
using namespace std; | using namespace std; |
cpp/class_templates_specialization.1588345337.txt.gz · Last modified: 2020/05/01 14:02 (external edit)