2
#include<iostream>
using namespace std;
class Alpha
{
int a;
public:
void get_a(int x)
{
a = x;
}
int hello()
{
return a;
}
};
class Beta : public Alpha
{
int b, c;
public:
void get_b(int y)
{
b = y;
}
void add()
{
c = hello() + b;
cout << c << endl; // displays garbage value
}
};
int main()
{
Alpha v1;
Beta v2;
v1.get_a(4);
v2.get_b(3);
v2.add();
v2.disp();
return 0;
}
v2.dispの出力は、()ごみの値を示しているが、私はinitaliseとき「」ではなくv1.get_aのv2.get_aとして、それが正しい答えを示しています。 C++の新機能btw。助けてください。ありがとう。C++、単一継承、ごみ値
:
はあなたの問題を解決するには、オブジェクトを使用するのですか?私はあなたのコードでそれが表示されません。 –
また、あなたの命名は少し奇妙です。 'get'という名前の関数があり、実際には何も取得せず、代わりに* set *値を取得します。 –
申し訳ありません、dispは実際には変数cの値を表示するための関数でした。私はコードを編集していたので、追加するのを忘れました。しかし、変数aを既に初期化していれば、なぜガベージ値が表示されるのですか?もう一度ありがとう。 – user7166135