#include <iostream.h>class location{
private:
int x,y;
public:
void init(int=0,int=0);
void valuex(int){x=8;}
int valuex(){return x;}
void valuey(int){y=9;}
int valuey(){return y;}
};void location::init(int initx,int inity)
{
x=initx;
y=inity;
}void main()
{
location a,b;
a.init();
a.valuex(4);
cout<<a.valuex()<<endl<<a.valuey()<<endl;
b.init(6,2);
b.valuey(6);
cout<<b.valuex()<<endl<<b.valuey()<<endl;
}输出应该是:
4
0
6
6但是程序的输出却是:
8
0
6
9

解决方案 »

  1.   

    就应该是8,0,6,9 location a,b;
    a.init();  //x = 0, y=0
    a.valuex(4); // x = 8 , y=0
    cout<<a.valuex()<<endl<<a.valuey()<<endl;
    b.init(6,2); //x=6, y=2
    b.valuey(6);  //x=6, y=9
    cout<<b.valuex()<<endl<<b.valuey()<<endl;
      

  2.   

    要想得到4,0, 6, 6的结果应该这样
    class location{
    private:
    int x,y;
    public:
    void init(int=0,int=0);
    void valuex(int a){x=a;}
    int valuex(){return x;}
    void valuey(int b){y=b;}
    int valuey(){return y;}
    };
      

  3.   

    我什么我在重载的时候不是这句起作用a.valuex(4);而是void valuex(int){x=8;}我不想改成 void valuex(int a){x=a;}
    int valuex(){return x;}
    void valuey(int b){y=b;}
    int valuey(){return y;}如果我用 void valuex(int){x=val;}
    int valuex(){return x;}
    void valuey(int){y=val;}
    int valuey(){return y;}还需要加什么语句使我的
    a.valuex(4); 这句起作用 ~!
    谢谢~!
      

  4.   

    a.valuex(4); 必然调用void valuex(int){x=8;}这个函数,X的值就被赋成8了,没有办法。