クラスで変数を宣言し、次にそれらの変数の値を割り当てるとき、たとえば次のように
class c {
public :
int x;
int x2;
c () {
x = 0;
x2 = 0;
scanf ("%d", &x); and now we're gonna input for example 10
}
};
クラスが使用されるたびに、つまり、コンストラクターが呼び出されるたびに、コンストラクターでゼロとして初期化されるため、xの値は再び0になります。ただし、値を初期化しないと、エラーが発生します。
私の質問は、コンストラクターを何度も呼び出すときに変数の値を保持して、ゼロにならないようにするにはどうすればよいかということです。
編集:
void example () {
int i;
scanf ("%d", &i);
switch (i) {
case 1 : {Object ob1; system ("cls"); menu ();} // this object contains a value like 20
case 2 : {Object ob2; system ("cls"); menu ();}
}
}
オブジェクト1には、メインメニューに戻るオプションを含む別のスイッチケースがあります。ここで、もう一度1を入力すると、オブジェクト1に戻ります。値20が表示されないため、0になります。