头文件
#ifndef MOVE_H_
#define MOVE_H_
/*class T
{
int a;
int b;
};*/
class Move
{
private:
double x;
double y;
public:
Move(double a=0,double b=0);
void showmove()const;
Move add(const Move &m)const;
void reset(double a=0,double b=0);
// void testT(T &t);
};
#endif
#include<iostream>
#include "move.h"
using namespace std;
Move::Move(double a,double b)
{
x=a;
y=b;
}
void Move::showmove()const//有const一定要加上const,不然会出错
{
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
cout<<endl;
}
Move Move::add(const Move &m)const
{
double a=x+m.x;//为什么这里就可以直接访问m中x,y的值
double b=y+m.y;//在类的成员函数中,是可以直接访问私有成员的,传入的类的私有成员也可以被访问
Move n(a,b);//而且add函数也是传入类的成员函数,所以可以访问私有成员的值
return n;
}
void Move::reset(double a,double b)
{
x=a;
y=b;
}
//void Move::testT(T &t)
//{
// cout<<t.a<<endl;
//}
#include<iostream>
#include "move.h"
using namespace std;
void main()
{
Move l(1,2);
Move m(2,3);
Move n(3,4);
l.showmove();
m.showmove();
m.add(l).showmove();
n.showmove();
n.reset();
n.showmove();
// cout<<l.x<<" "<<l.y<<endl;
}