constructors u i class complex public complex complex
Κατασκευαστές (constructors) u Μιγαδικοί (i) αριθμοί class complex { //. . . public: complex (); complex (double r, double i); complex (const complex & c); }; complex c 1; complex c 2(1. 0, 4. 0); complex c 3(c 1); Νίκος Παπασπύρου ΛΟΓ 201: Τεχνολογία Λογισμικού ΙΙ 2
Κατασκευαστές (constructors) u Default (ii) constructor complex: : complex () { re = im = 0. 0; } u Copy constructor complex: : complex (const complex & c) { re = c. re; im = c. im; } Νίκος Παπασπύρου ΛΟΓ 201: Τεχνολογία Λογισμικού ΙΙ 3
Κατασκευαστές (constructors) u Λοιποί (iii) constructors complex: : complex (double r, double i) { re = r; im = i; } complex: : complex (double r) { re = r; im = 0. 0; } Νίκος Παπασπύρου ΛΟΓ 201: Τεχνολογία Λογισμικού ΙΙ 4
Καταστροφείς (destructors) (ii) class name { private: char * s; public: name (const char * n); ~name (); }; name: : name (const char * n) { cout << n << " is copiedn"; s = new char [strlen(n)+1]; strcpy(s, n); } Νίκος Παπασπύρου ΛΟΓ 201: Τεχνολογία Λογισμικού ΙΙ 6
Καταστροφείς (destructors) (iii) name: : ~name () { cout << s << " is deletedn"; delete [] s; } int main () { name n("nickie"); return 0; } Νίκος Παπασπύρου nickie is copied nickie is deleted ΛΟΓ 201: Τεχνολογία Λογισμικού ΙΙ 7
Διάφοροι τελεστές (i) u operator = complex & complex: : operator = ( const complex & c) { re = c. re; im = c. im; return *this; } name & name: : operator = ( const name & n) { delete [] s; s = new char [strlen(n. s)+1]; strcpy(s, n. s); return *this; } Νίκος Παπασπύρου ΛΟΓ 201: Τεχνολογία Λογισμικού ΙΙ 9
- Slides: 10