kfoynt Δημοσ. 29 Σεπτεμβρίου 2008 Δημοσ. 29 Σεπτεμβρίου 2008 Χρειάζομαι λίγη βοήθεια πάνω στην c++, το πρόβλημα μου ειναι το εξής : Έχω ορίσει ένα enum μέσα στο Problem.h : enum Type_of_move { ONE_PER_ONE_M = 1, ONE_PER_ONE = 2, ZERO_PER_ONE_M = 3, ZERO_PER_ONE = 4, TWO_OPT = 5, TWO_OPT_M = 6 }; μία private μεταβλητή μέσα στο Problem.h : enum Type_of_move type_of_move; και 2 συναρτήσεις στο Problem.cpp ( οι ορισμοί τους ειναι στο Problem.h ) που χειρίζονται αυτην την μεταβλητη, τις κλασσικές set - get : void Problem::set_Type_of_move( istream & type_of_move, ostream & output ) { output << " Choose the Type of the Neighborhood \n " << " Type \' 1 \' for ONE_PER_ONE_M \n" << " Type \' 2 \' for ONE_PER_ONE \n" << " Type \' 3 \' for ZERO_PER_ONE_M \n" << " Type \' 4 \' for ZERO_PER_ONE \n" << " Type \' 5 \' for TWO_OPT \n" << " Type \' 6 \' for TWO_OPT_M \n"; type_of_move >> this -> type_of_move; // ΕΔΩ ΜΟΥ ΒΓΑΖΕΙ ΕΝΑ ΕΡΡΟΡ } Problem::Type_of_move Problem::get_Type_of_move( void ) { return this -> type_of_move; } το ΕΡΡΟΡ ειναι : no match for " operator >> " in " type_of_move >> (( Problem* )this) -> Problem::type_of_move " Aυτό που ήθελα να πετύχω ειναι να βάζει ο χρήστης έναν αριθμό τον οποίο θα χειρίζομαι μέσω των set και get, Πχ problem.set_Type_of_move( cin, cout ); Ευχαριστώ
georgemarios Δημοσ. 30 Σεπτεμβρίου 2008 Δημοσ. 30 Σεπτεμβρίου 2008 πρεπει να φτιαξεις μια εξειδικευμενη βερσιον του operator >> επειδη εχω σπασει τον καρπο μου και γραφω με το αριστερο μονο, δε μπορω δυστυχως να στο εξηγησω καλα αλλα αν διαβασεις εδω νομιζω θα το πιασεις το νημα και θα το φτιαξεις καλη συνεχεια
kfoynt Δημοσ. 30 Σεπτεμβρίου 2008 Μέλος Δημοσ. 30 Σεπτεμβρίου 2008 πρεπει να φτιαξεις μια εξειδικευμενη βερσιον του operator >>επειδη εχω σπασει τον καρπο μου και γραφω με το αριστερο μονο, δε μπορω δυστυχως να στο εξηγησω καλα αλλα αν διαβασεις εδω νομιζω θα το πιασεις το νημα και θα το φτιαξεις καλη συνεχεια OK!!! σε ευχαριστώ πάρα πολύ.. έψαχνα ώρες στο google και δν μπορούσα να βρώ κάτι αντίστοιχο..!
evabb Δημοσ. 1 Οκτωβρίου 2008 Δημοσ. 1 Οκτωβρίου 2008 χμμμ δεν ειμαι σιγουρη αν καταλαβα σωστα την ερωτηση σου. να δωσει ο χρηστης μια τιμη και να μπει αυτη στην μεταβλητη που θες. εγω θα το εκανα καπως ετσι int newvalue // στην main αυτα σε οποια αλλη συναρτηση χρειαζεται cin>>newvalue>>endl; probleme.set(newvalue)// int & newvalue file.cpp void set(int & newvalue)// δεν θυμαμαι ακριβως την συνταξη του ονοματος μιας συναρτησης μεσα σε class { kryfhmetavlhth=newvalue; } αν εγραψα πατατες σορρυ
bxenos Δημοσ. 2 Οκτωβρίου 2008 Δημοσ. 2 Οκτωβρίου 2008 type_of_move >> this -> type_of_move; // ΕΔΩ ΜΟΥ ΒΓΑΖΕΙ ΕΝΑ ΕΡΡΟΡ απο το cin μπορούν να διαβαστούν τα γνωστά αντικείμενα (int,char,...). Δεν υπάρχει μετατροπη για το enum σου βάλε > int x; type_of_move >> x;//x ξερει να διαβασει η C++ std lib if(x >= ONE_PER_ONE_M && χ<=TWO_OPT_M ) this->type_of_move = (enum Type_of_move)x; else { //σφάλμα εισαγωγής, ενημερωσε χρήστη και κανε ενεργεια αποκαταστασης }
kfoynt Δημοσ. 2 Οκτωβρίου 2008 Μέλος Δημοσ. 2 Οκτωβρίου 2008 evabb : μια χαρα τα έγραψες! απλά ψάχνω για άλλη υλοποίηση. bxenos : Τλκ το έλυσα το πρόβλημα κάνοντας overload τον operator >> thanx!!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.