Board logo

标题: 为什么和我想要的结果不一样啊?????? [打印本页]

作者: ratzip    时间: 2005-12-7 22:11     标题: 为什么和我想要的结果不一样啊??????

#include <iostream.h>
class point
{
  public:
  int x;
  int y;
  point(int a,int b)
  {
   x=a;
   y=b;
  }
  void output()
  {
    cout<<x<<endl<<y<<endl;
  }
  void output(int x,int y)
  {
    x=x;
    y=y;
  }
};
void main()
{
   point pt(3,3);
   pt.output(5,5);
   pt.output();
}


我想得到

5  5

结果是
3  3

为什么???
作者: Nothing    时间: 2005-12-8 09:42

void output(int x,int y)
这一行有问题,也就是说这个函数有问题,因为参数都一样了。
x=x;
y=y;
这样过后,x还是x,y还是y,没有变化。
你应当写成这样
[code:2fc656d74a]void output(int x1,int y1)
{
    x=x1;
    y=y1;
} [/code:2fc656d74a]
或者这样也行
point pt(3,3);
pt.x=5;
pt.y=5;
pt.output();
作者: wangleiong    时间: 2006-11-15 20:03     标题: 我认为是这样的

#include <iostream.h>
class point
{
  public:
  int x;
  int y;
  point(int a,int b)
  {
   x=a;
   y=b;
  }

  void output(int x1,int y1)
  {
    x=x1;
    y=y1;
cout<<x<<","<<y;
  }
};
void main()
{
   point pt(3,3);
   pt.output(5,5);
   
}你的上面的参数赋值不正确
或者这样也可:
#include <iostream.h>
class point
{
  public:
  int x;
  int y;
  point(int a,int b)
  {
   x=a;
   y=b;
  }
  void output()
  {
          cout<<x<<","<<y;
  }
  void output(int x1,int y1)
  {
    x=x1;
    y=y1;
  }
};
void main()
{
   point pt(3,3);
   pt.output(5,5);
   pt.output();
}但是这样效率不高,而且多余
作者: flyyfeng    时间: 2006-11-16 10:46     标题: 看看這樣行不行

#include <iostream.h>
class point
{
  public:
  int x;
  int y;
  point(int *a,int *b)
  {
   x=&a;
   y=&b;
  }
  void output()
  {
          cout<<x<<","<<y;
  }
  void output(int &x,int &y)
  {
    x=a;
    y=b;
  }
};
void main()
{
   point pt(3,3);
   pt.output(5,5);
   pt.output();
}




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0