C++,单继承,垃圾值

C++ ,Single Inheritance, Garbage Value

#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++ 的新手。请帮忙。谢谢

问题是您有两个彼此无关的不同对象。对象 v1 与对象 v2 无关,它们是独立且不同的对象。您使用 v1.get_a(4) 初始化 Alpha::a,但不会初始化 Beta::a

解决您的问题的方法是使用 一个 对象:

Beta v;
v.get_a(4);
v.get_b(3);
v.add();
v.disp();