gpt4 book ai didi

c++ - 为什么我在继承程序中得到垃圾总和?

转载 作者:行者123 更新时间:2023-12-02 09:59:59 25 4
gpt4 key购买 nike

为什么我在使用多级继承的输出中得到垃圾总和? sum函数位于c类中,而c1对象在main函数中创建。

#include <iostream.h>
using namespace std;
class A {
public:
int a, b;
};
class B : public A {
public:
void input()
{
cout << "enter the values";
cin >> a >> b;
}
};
class C : public B {
public:
void sum()
{
cout << a + b;
}
};
int main()
{
B b1;
C c1;
b1.input();
c1.sum();
return 0;
}

最佳答案

why i am getting garbage sum


因为您在 b1.input()中读取的值存储在与在 c1.sum()中打印的值不同的对象中。
您要添加未初始化的 int,因此程序的行为是不确定的。
也许你想要
int main()
{
C c1;
B & b1 = c1;
b1.input();
c1.sum();
return 0;
}
您对 B对象的 C基础子对象的引用。
或更简单
int main()
{
C c1;
c1.input();
c1.sum();
return 0;
}
因为 CB,所以您可以使用 B的方法来调用。

关于c++ - 为什么我在继承程序中得到垃圾总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63132649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com