C ++没有提供预期的输出

时间:2014-05-15 05:21:44

标签: c++

我是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告诉我为什么输出就像这样!!!! 我只想学习

2 个答案:

答案 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)

ab是不同的对象,变量a,b存储在每个对象的内存空间中。您初始化了a的成员,并尝试与对象b进行比较

So plz help me N tell me Why the Output is like this?

无论得到什么,答案都是垃圾值。