cpp:class_templates
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cpp:class_templates [2019/05/04 04:28] – [Ένα πιο σύνθετο παράδειγμα] gthanos | cpp:class_templates [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 4: | Line 4: | ||
<code cpp Box.hpp> | <code cpp Box.hpp> | ||
+ | #ifndef _BOX_HPP_ | ||
+ | #define _BOX_HPP_ | ||
+ | |||
template < | template < | ||
class Box { | class Box { | ||
Line 31: | Line 34: | ||
return out; | return out; | ||
} | } | ||
+ | #endif | ||
</ | </ | ||
Line 51: | Line 55: | ||
katherine.setName(" | katherine.setName(" | ||
| | ||
+ | cout << "--- Printing Values ---" << endl; | ||
cout << kate << endl; | cout << kate << endl; | ||
cout << katherine << endl; | cout << katherine << endl; | ||
cout << studentBox.get() << endl; | cout << studentBox.get() << endl; | ||
+ | cout << "--- Destroying objects ---" << endl; | ||
} | } | ||
</ | </ | ||
Line 59: | Line 65: | ||
===== Ένα πιο σύνθετο παράδειγμα ===== | ===== Ένα πιο σύνθετο παράδειγμα ===== | ||
- | Ας υποθέσουμε ότι θέλουμε να κατασκευάσουμε ένα στατικό πίνακα (συγκεκριμένης χωρητικότητας) για την αποθήκευση πληροφορίας. Σε αναλογία με την κλάση **Box< | + | Ας υποθέσουμε ότι θέλουμε να κατασκευάσουμε ένα στατικό πίνακα (συγκεκριμένης χωρητικότητας) για την αποθήκευση πληροφορίας. Σε αναλογία με την κλάση **Box< |
<code cpp Array.hpp> | <code cpp Array.hpp> | ||
- | |||
#ifndef __ARRAY_H__ | #ifndef __ARRAY_H__ | ||
#define __ARRAY_H__ | #define __ARRAY_H__ | ||
Line 76: | Line 81: | ||
public: | public: | ||
Array(); | Array(); | ||
- | Array(const T t[], int length); | ||
Array(const Array< | Array(const Array< | ||
void set(T e, int index); | void set(T e, int index); | ||
Line 90: | Line 94: | ||
Array< | Array< | ||
// empty | // empty | ||
- | } | ||
- | |||
- | template< | ||
- | Array< | ||
- | int copy_size = length > size ? size : length; | ||
- | for(int i=0; i< | ||
- | array[i] = t[i]; | ||
} | } | ||
Line 139: | Line 136: | ||
std:: | std:: | ||
for(int i=0; i<size; i++) { | for(int i=0; i<size; i++) { | ||
- | out << t.array[i] << " "; | + | out << t.array[i] |
+ | if(i< | ||
+ | out << ", "; | ||
} | } | ||
return out; | return out; | ||
Line 146: | Line 145: | ||
</ | </ | ||
+ | <code cpp ArrayUsage.cpp> | ||
+ | #include " | ||
+ | #include " | ||
+ | #define ARRAY_SIZE 10 | ||
+ | using namespace std; | ||
+ | int main() { | ||
+ | Array< | ||
+ | | ||
+ | for(int i=0; i< | ||
+ | a[i] = i; | ||
+ | | ||
+ | cout << "--- Printing a ---\n"; | ||
+ | cout << a << endl; | ||
+ | | ||
+ | Array< | ||
+ | | ||
+ | cout << "--- Printing b ---\n"; | ||
+ | cout << b << endl; | ||
+ | | ||
+ | Array< | ||
+ | sts[0] = Student(" | ||
+ | sts[1] = Student(" | ||
+ | sts[2] = Student(" | ||
+ | sts[3] = Student(" | ||
+ | | ||
+ | cout << "--- Printing sts ---\n"; | ||
+ | cout << sts << endl; | ||
+ | | ||
+ | } | ||
+ | </ |
cpp/class_templates.1556944094.txt.gz · Last modified: 2019/05/04 03:28 (external edit)