我是IT的学生在我们的教科书中有很多简单继承的程序,但这些程序很长,所以它很难理解,很难记住所以我试着做一个小的简单继承程序在C ++中但该程序没有给出预期的输出。
我已经使用C ++ for Windows 7
以下是代码:
#include"iostream.h"
#include"conio.h"
class A
{
public:
int a,b;
void setData(int i,int j)
{
a=i;
b=j;
}
};
class B: public A
{
public:
int compare()
{
return(a>b?a:b);
}
};
void main()
{
A a;
B b;
//int c;
clrscr();
a.setData(25,9);
cout<<"answer: "<<b.compare();
getch();
}
输出就像这样
answer : 1213
所以PLZ帮帮我N告诉我为什么输出就像这样!!!! 我只想学习
答案 0 :(得分:1)
您在课程setData
的对象上使用A
,但在课程compare
的对象上调用B
。在这两种情况下都使用b
。
int main()
{
A a;
B b;
//int c;
clrscr();
b.setData(25,9);
cout<<"answer: "<<b.compare();
getch();
return 0;
}
也会更改main
方法的签名。
答案 1 :(得分:0)
a
和b
是不同的对象,变量a,b
存储在每个对象的内存空间中。您初始化了a
的成员,并尝试与对象b
进行比较
So plz help me N tell me Why the Output is like this?
无论得到什么,答案都是垃圾值。