Wieso werden meine Variablen nicht erkannt (c++)?


12.06.2020, 00:55
#include <iostream>
#include <sstream>
using namespace std;




class Customer{


public:

Customer();


string Ausgabe(){
    

   number = to_string(number);
   postCode = to_string(postCode);
 
 
return  number + name + postCode + domiciler;
 
}

};


Customer::Customer(){
    
int number = 33333;
string name = "Anna";
int postCode = 39100;
string domiciler = "Schöndorf";
}




int main(){
    
    
Customer susi;
cout<<susi.Ausgabe();
    
    
  return 0;  
}

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Nö, die variablen sind nicht deklariert.

Variablen gelten immer nur in dem block in dem sie deklariert werden und dadrunterliegenden. Wenn du also

beispiel() {
int nummer = 3;
}
example() {
int nummer = 5;
}

Hast, dann hast du zwei unterschiedliche variablen die beide nummer heißen. Du könntest in einer dritten methode nicht auf den wert zugreifen.

Wenn du aber sowas hast

int nummer;
beispiel() {
nummer = 3;
}
example() {
nummer = 5;
}

Dann hast du eine variable und änderst den wert. Auf den könntest du auch mit einer anderen methode zugreifen.

Daher solltest du die variablen vemutlich außerhalb der methode deklarieren in deinem fall.

DoktorTek  12.06.2020, 01:21

Und mach dir (und denen die den Code lesen) das Leben einfacher und verwende lange Variablen, also statt "nummer" die ganze Bezeichnung wie "Telefonnummer".

Ich mache auch immer einen Kommentar ans Ende eines Blockes, wie z.B.
} //main
damit ich immer weiss welche Klammer zu welcher Funktion gehört.

0
jort93  12.06.2020, 01:31
@DoktorTek

Stimmt natürlich, aber ich weiß ja nicht was er damit meint in diesem fall.

Interessante idee, aber sowas könnnen ide's ganz gut anzeigen heutzutage.

0

Wie immer: Fehlermeldungen dazupacken!

Dein Problem liegt im Scoping:

Customer::Customer(){
    
int number = 33333;
string name = "Anna";
int postCode = 39100;
string domiciler = "Schöndorf";
}

number und postCode existieren nur in dieser Methode.