nik324 Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Φτιαξτε ένα νέο τύπος τριγώνου με χαρακτηριστηκα vasi και ipsos...και με αρχικές τιμές 2.Να υλοποιηθούν κατάλληλες συναρτήσεις μέλη για το εμβαδόν του τριγώνου. Επίσης κατάλληλες συναρτήσεις set και get των χαρακτηριστηκών vasi and ipsos. > class X{ private: int ipsos; int vasi; public: void setIpsos(int x){ ipsos=x; } void setVasi(int y){ vasi=y; } int getIpsos(void){ return ipsos; } int getVasi(void){ return vasi; } // Σε αυτό το σημείο βάζω μια συνάρτηση που να υπολογίζει το εμβαδόν του τριγώνου // περνει σαν ορισμα το ipsos και τη vasi και εκτυπωνει το αποτέλεσμα και κανει return // το εμβαδόν. }; Σωστά σας φαίνονται τα παραπάνω? Το πρόβλημα μου είναι ότι δεν καταλαβαίνω τι πρέπει να βάλω στην main() και πως να αρχικοποιήσω τα χαρακτηριστηκά του τριγώνου. Ευχαριστω πολύ
fonsde Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 σωστα μου φαινονται αν και εχω καιρο να δω c++. στην main δημιουργεις ενα object κλασσης Χ. Κανε ενα google για constructor σε c++ οπου θα μπει στην κλασση για αρχικοποιηση
nik324 Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 Οκ....ευκολα αυτα....Μετα? Τι άλλο πρέπει να κάνει η main? Δεν δυσκολέυομαι στην υλοποίηση αλλά στην κατανόηση. Το πρόβλημα μου είναι πως να χειριστώ τις συναρτήσεις set και get Αφου έχω συναρτήση set γιατι να χρησιμοποιήσω constractor; Ευχαριστώ πολύ
fonsde Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 ε τι θες να κανει εκτος απο το να το δημιουργει ? τι αλλο λεει η εκφωνηση?
nik324 Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 Ποια η διαφορά μιας συνάρτησης set() και ενός constractor;
παπι Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Ποια η διαφορά μιας συνάρτησης set() και ενός constractor; Ο δευτρερος καλειται αυτοματα κατα την δημιουργια του αντικειμενου. Το δε πρωτο ειναι ενα ατυπο perifx για μια pointer to function member.
nik324 Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 Αν ήθελα να πέρνουν τα ipsos,vasi συγκεκριμένες τιμές απο 1 μέχρι 5 ας πούμε....πως θα το κάνω αυτό; Πρέπει να δημιουργίσω μια κλάση σφαλμα΄των; Εχω μπερδευτεί πολύ σε αυτό
nrkmaiden Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 θα μπορουσες με μια if να ελεχεις τους setters πχ if((x1<=5)&&(x1>=1)){X.setypsos(x1);}
nik324 Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 Η ασκηση όμως λέει να γίνει με exepsions δηλαδη από ότι έχω καταλάβει με try....catch.. Με μπερδέυει ότι στο exeption πρεπει να 'μπλεχτεί' και μια συναρτηση μέλος της κλάσης...Αν ήταν μόνο η μαιν δεν υπήρχε πρόβλημα
nik324 Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 στην main έχω βάλει αυτό object.setIpsos(x); κάπου εδώ πρέπει να βάλω τα try catch αλλα δεν μου το βγάζει σωστό
Directx Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 στην main έχω βάλει αυτό object.setIpsos(x); κάπου εδώ πρέπει να βάλω τα try catch αλλα δεν μου το βγάζει σωστό Η ασκηση όμως λέει να γίνει με exepsions δηλαδη από ότι έχω καταλάβει με try....catch.. Με μπερδέυει ότι στο exeption πρεπει να 'μπλεχτεί' και μια συναρτηση μέλος της κλάσης...Αν ήταν μόνο η μαιν δεν υπήρχε πρόβλημα Καταρχήν θα φροντίσεις οι κλήσεις που μπορεί να επιστρέψουν Exception (πχ. setIpsos) να καλούνται εντός ενός try{ }catch(){ } μπλοκ. Ύστερα εντός της setIpsos για παράδειγμα, θα πρέπει όταν ανιχνεύεις μια τιμή εκτός ορίων που επιθυμείς να επιστρέφεις ένα Exception κάποιου είδους, πχ. ως char*, σαν throw (char*)"setIpsos::Invalid range!"; αυτό αρκεί. Τώρα στο αρχικό try{ }catch(){ } μπλοκ σου φροντίζεις να ορίσεις το catch() ως catch(char*) ώστε να πιάνει όλα τα Exceptions τύπου char* (δηλαδή throw (char*)"..") και είσαι έτοιμος. Υ.Γ. Καλό είναι το throw να επιστρέφει ένα ανάλογο class αντί κατευθείαν κάποιο τύπο αλλά καθώς δεν έχεις εμπειρία, τα παραπάνω είναι αρκετά για ξεκινήσεις.
nik324 Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 θα έχω δηλαδη στη main > cin>> i; try{ oblject.setIpsos(i) } catch(){ cerr << "oops!" }
Directx Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 θα έχω δηλαδη στη main > cin>> i; try{ oblject.setIpsos(i) } catch(){ cerr << "oops!" } Το main θα μπορούσε να το έχεις έτσι: > int main(void) { X myX; try { myX.setIpsos(6); } catch(char *ex) { cout <<ex<<endl; } Όπου το setIpsos θα μπορούσε να ήταν κάτι σαν: > void setIpsos(int x) { if(x < 1 || x > 5) throw (char*)"setIpsos::Invalid range!"; ipsos=x; }
nik324 Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 Φίλε ευχαριστώ πολύ θα το δοκιμάσω τώρα αμέσως.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα