实验15 运算符重载
【实验目的】
通过本实验,掌握运算符重载的概念。
【实验要求】
熟练掌握运算符重载的使用技术。
【实验内容】
实现下面两个程序,注意“+”的重载用法。
1)定义运算符重载函数为友元函数。
#include<string.h>
#include<iostream.h>
class A{
private:
int x,y;
public:
A():x(0),y(0){}
A(int i,int j):x(i),y(j){}
A& operator =(const A &a){
if(this==&a) return *this;
x=a.x; y=a.y;
return *this;
}
friend A operator +(const A &a,const A &b){
A m;
m.x=a.x+b.x;
m.y=a.y+b.y;
return m;
}
void f(){ cout<<"x="<<x<<", y="<<y<<endl; }
};
int main(){
A a(1,2); a.f();
A b(3,4); b.f();
A c; c.f();
c=a+b; c.f();
return 0;
}
2)定义运算符重载函数为成员函数。
#include< c string>
#include<iostream>
using namespace std;
class A{
private:
int x,y;
public:
A():x(0),y(0){}
A(int i,int j):x(i),y(j){}
A& operator =(const A &a){
if(this==&a) return *this;
x=a.x; y=a.y;
return *this;
}
A operator +(const A &a){
A m;
m.x=a.x+10;
m.y=a.y+10;
return m;
}
void f(){ cout<<"x="<<x<<", y="<<y<<endl; }
};
int main(){
A a(1,2); a.f();
A b; b.f();
b=b+a; b.f();
return 0;
}