User Tools

Site Tools


cpp:function_try_blocks

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
cpp:function_try_blocks [2019/05/06 15:12] – [Function Try Blocks] gthanoscpp:function_try_blocks [2019/05/06 15:16] – [Exception που συμβαίνουν στον κατασκευαστή προγόνου κλάσης] gthanos
Line 144: Line 144:
 </WRAP> </WRAP>
  
-===== Exception που συμβαίνουν στον κατασκευαστή προγόνου κλάσης =====+===== Exception που συμβαίνουν στον κατασκευαστή της προγόνου κλάσης =====
  
 Ας υποθέσουμε την κλάση //Student// που είναι απόγοντος της κλάσης //Person// και δηλώνεται ως εξής: Ας υποθέσουμε την κλάση //Student// που είναι απόγοντος της κλάσης //Person// και δηλώνεται ως εξής:
  
 <code cpp Student.hpp> <code cpp Student.hpp>
-Student::Student(const char *first, const char *last, int id) try: Person(first, last), aem(id) {+class Student: public Person { 
 +  int aem; 
 +public: 
 +  Student(const char *first, const char *last, int id); 
 +}; 
 + 
 +Student::Student(const char *first, const char *last, int id): Person(first, last), aem(id) {
   cout << "Student constructor" << endl;   cout << "Student constructor" << endl;
 +
 +</code>
 +
 +Εάν επιθυμούμε να "πιάσουμε" την εξαίρεση εντός του κατασκευαστή της κλάσης //Student// θα πρέπει να την ξαναγράψουμε εξής:
 +<code cpp>
 +class Student: public Person {
 +  int aem;
 +public:
 +  Student(const char *first, const char *last, int id);
 +};
 +
 +Student::Student(const char *first, const char *last, int id) try : Person(first, last), aem(id) {
 +  cout << "Student constructor" << endl;
 +
 +catch(BadName& ex) {
 +  cout << "--> firstname deleted!" << endl;
 +  delete firstname;
 } }
 </code> </code>
 +
 +Η παραπάνω σύνταξη επιτρέπει να πιάσουμε το exception που συνέβει στον κατασκευαστή της προγόνου κλάσης. Και εδώ το //exception// θα ξανα-παραχθεί σύμφωνά με τους κανόνες που ίσχυσαν και στο προηγούμενο παράδειγμα.
  
cpp/function_try_blocks.txt · Last modified: 2022/05/23 06:05 by gthanos