【发布时间】:2016-11-16 08:28:25
【问题描述】:
#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() 的输出显示垃圾值,但是当我将“a”初始化为 v2.get_a 而不是 v1.get_a 时,它显示了正确的答案。顺便说一句,C++ 新手。请帮忙。谢谢。
【问题讨论】:
-
什么是
disp?我在您的代码中没有看到它。 -
你的命名也有点奇怪。您有名为
get的函数实际上并没有“获取”任何东西,而是 set 值。 -
对不起,disp 实际上是一个用于打印变量 c 值的函数。因为我正在编辑代码,所以忘记添加它。但是,如果我已经初始化了变量 a,为什么会显示垃圾值。再次感谢。
标签: c++ inheritance garbage