M
とL
の2クラスがそれぞれ.header
と.cpp
のファイルを持っています。スイッチの場合、C++ get/setが値を取得しない
は、クラスL
で取得/設定メソッド
class L // this is in L.h file
{
private:
int A;
float B;
public:
A();
A(int,float);
void setA(int A);
int getA();
void setB(int B);
int getNoOfEarthLikePlanets();
};
//L.cpp//
L::L() // default constructor
{
A = 0;
B = 0;
}
L::L(int aA,float bB) non-default constructor
{
A = aA;
B = bB;
}
void L::setA(int aA) // set A
{
A = aA;
}
int L::getA() // get A
{
return(A);
}
void L::setB(float bB) //set B
{
B = bB;
}
float L::geB() // get B
{
return(B);
}
は私のクラスM
あります
#include "L.h"
void M::mainMenu()
{
int choice = 0;
cout<<" 1) enter your A and B:"endl;
cout<<" 2) Display your An B :"endl;
cin>>choice;
yourChoice(choice);
}
void M::yourChoice(int choice)
{
const int size = 50;
int cinA;
int cinB;
static int count = 0;
L newL[size];
while(choice != 999)
{
switch(choice)
{
case 1:
{
while(count<SIZE)
{
cout<<"What is A : ";
cin>>cinA;
newL[count].setA(cinA);
cout<<"What is B: ";
cin>>cinB;
newL[count].setA(cinA);
++count;
//******i tried to cout my newL[count].getA(); it displays a blank too*********
mainMenu();
cin>>choice;
break;
};
//Even if i bring newL
} // end of case 1
break;
case 2:
{
for(int x = 0;x<size;x++)
{
cout<<newL[x].getA()<<endl; //Prints a blank
}
}//end of case 2
}//end of switch
}//end of while
私は/ケース1には、ユーザー入力を取得するように設定し、それをプリントアウトを取得を使用していますケース2。しかし、ケース1の詳細を入力した後、ケース2に行くと何も表示されず、0
も空白になります。私は呼び出しの間に何かするかもしれないと思ったので、私の型変数の前に静的を置いてみました。
また、値を入力した直後のケース1ではcout
getA()
を試しましたが、空白も表示されます。私は何が欠けているのですか?私が書いた他のコードがこれを起こすかもしれないと感じるなら、Plsはより詳細なコードを要求します。これはその一部にすぎません。私int main()
で
私はちょうどmainMenu();
たび表示したい場合は、
mainMenu(true);
を呼び出すことができますこの方法「yourChoice(選択肢);」それは、クラスLの新しい配列を作成しています。newL [size]をstaticにして試してみることはできますか?また、case1ブロックでは、 "++ count;"の前に印刷していることを確認してください。 – MayurK以上:「M」のクラスメンバーにしてください!!あなたはそこにオブジェクトを持っています –
あなたの本の関数と変数の範囲についてもっとお読みください。彼らはあなたのような関数呼び出しを扱っています。 – molbdnilo