これは、今日のクイズのコードです。言語: C++.
class Shape
{
protected:
int *x;
int *y;
public:
void draw()
{
//we were supposed to add random code here.
}
};
選択したオーバーロードされた演算子を作成し、それを main に実装するように求められました。私はポインターに少し怖がっていたので、次のようなコンストラクターを作成することにしました。
class Shape
{
protected:
int *x;
int *y;
public:
void draw()
{
cout<<*x<<endl;
}
Shape(){};
Shape{int a, int b)
{
x = &a; //this I thought would allow *x to act just like a normal variable.
y = &b;
}
//code for operator overloading.
};
クイズに合格したような印象を受けましたが、自宅のコンピューターに実装してみると、draw 関数がガベージ値/メモリ アドレスを返すことに気付きました。その結果、他のすべてが苦しみます。なぜこれが起こっているのか教えてください。ポインタの範囲と関係がありますか? ポインターを通常の変数として使用できるようにしたい。ただの学生です。前もって感謝します!