Προς το περιεχόμενο

Απορια C++


lolek

Προτεινόμενες αναρτήσεις

Δημοσ.

Εχουμε για παράδειγμα τον παρακάτω κώδικα:

 

>
Void A_Class::A_function(){
   
   switch(num){
      case 2:
        int k=123;
        init[k][k];
        string s="ok"; 
        break;
      case 7;
        int k=67;
        init[k][k];
        string s="bla"; 
        break;
        
   }

   cout << "xrhsimopoihse ths metablhtes pou einai mesa sthn switch" << endl;
   cout << "file sugnwmh den mporw na tis xrhsimopoihsw.bgazw sfalmata";
   
} //end of function

 

Όπως θα καταλάβατε το προβλημά μου είναι οτι ο κώδικας μετά από την switch

δεν "βλέπει" τις μεταβλητές που είναι μέσα στο case 2 για παράδειγμα.

Δημοσ.

Όταν δηλώνεις μεταβλητές μέσα στην switch είναι τοπικές και μπορούν να χρησιμοποιηθούν απο το σύστημα σου μόνο στη switch.

Αν θέλεις να τις χρησιμοποιήσεις γενικά στο πρόγραμμα σου τότε θα πρέπει να τις κάνεις καθολικές.Δλδ θα τις δηλώσεις στην main.

Δημοσ.

οκ ευχαριστω.δεν με βολευει να τις ορισω στη main.δεν πειραζει απλά θα υπαρχει επαναλαμβανόμενος κώδικας

στα cases μάλλον.Τί να κάνουμε;

Δημοσ.

Χμμμ αν κατάλαβα θέλεις να χρησιμοποιήσεις συγκεκριμένες μεταβλητές μονο στη switch.Οπότε αυτο που πρέπει να κάνεις είναι να τις δηλώσεις αμέσως μετά την αγκύλη της switch.

Έτσι θα γίνουν χρήσιμες για όλα τα cases..και έτσι γλιτώνεις και αρκετό κώδικα :)

Δημοσ.

Χμμμ αν κατάλαβα θέλεις να χρησιμοποιήσεις συγκεκριμένες μεταβλητές μονο στη switch.Οπότε αυτο που πρέπει να κάνεις είναι να τις δηλώσεις αμέσως μετά την αγκύλη της switch.

Έτσι θα γίνουν χρήσιμες για όλα τα cases..και έτσι γλιτώνεις και αρκετό κώδικα :)

+1 τον φιλο μου

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...