C++类与对象的一个小练习有问题······
本帖最后由 无敌太刀 于 2018-10-2 09:29 编辑#include <bits/stdc++.h>
using namespace std;
class a
{
public:
int e, f;
int fun1(int x, int y)
{
return x + y;
}
protected:
int fun2(int x, int y)
{
return x - y;
}
private:
int fun3(int x, int y)
{
return x * y;
}
};
class b :public a
{
public:
int c=3;
int fun4()
{
return c + (e + f) / 2 +fun2(e,f);
}
};
intmain()
{
a lei1;
b lei2;
lei1.e = 1;
lei1.f = 2;
lei2.c = 3;
cout << lei1.fun1(lei1.e, lei1.f) << endl;
cout << lei2.fun4() << endl;
system("pause");
return 0;
}
为什么第二个输出结果是错误的?······ lei2里面的e,f没赋值 Mountain_gs 发表于 2018-10-2 17:49
lei2里面的e,f没赋值
lei1.e = 1;
lei1.f = 2;
可是我给lei1的e,f赋值了,lei1和lei2的e,f不是一个东西吗?······ 无敌太刀 发表于 2018-10-2 18:41
可是我给lei1的e,f赋值了,lei1和lei2的e,f不是一个东西吗?······
lei2 是 class b,继承 class a。lei1 是实例化之后的对象,跟 lei2 完全没有关系了。你上面的 e, f 没有赋值,得到的是垃圾值。
页:
[1]