运算符重载
{
Complex c;
c.real=c2.real+real;
c.imag=c2.imag+imag;
return c;
}
void Complex::display()
{
cout <<real <<"," <<imag <<"i" <<endl;
}
int main()
{
Complex c1(3,4),c2(5,-10),c3;
public:
RMB(){yuan=0;j=0;f=0;};
RMB(int r,int i){yuan=r;j=i;f=i;}
RMB operator + (RMB &c2);
RMB operator - (RMB &c2);
void display();
public:
int yuan;
int j;
Complex(double r,double i){real=r;imag=i;}
Complex operator + (Complex &c2);
void display();
private:
double real;
double imag;
};
Complex Complex::operator +(Complex &c2)
return 0;
}
3.列出代码
1、
(1)通过函数:
#include"iostream"
using namespace std;
class Complex
{
public:
Complex(){real=0;imag=0;};
Complex(double r,double i){real=r;imag=i;}
c3=c1+c2;
cout <<"c1=";c1.display();
cout <<"c2=";c2.display();
cout <<"c1+c2=";c3.display();
return 0;
}
2、
#include"iostream"
using namespace std;
class RMB
{
b.j=b.j+10;
b.yuan=c1.yuan-c2.yuan;
}
else
{
b.yuan=c1.yuan-c2.yuan;
}
}
return b;
}
AD AD::cun(RMB &c1,RMB &c2)
{
AD b;
b.yuan=c1.yuan+c2.yuan;
{
size=v.size;
buffer=new int[size];
for(int i=0;i<size;i++)
buffer[i]=v.buffer[i];}
void Vector::Display(){
for(int j=0; j<size; j++)
cout<<buffer[j]<<endl; }
void Set();
~Vector();
protected:
int size;
inቤተ መጻሕፍቲ ባይዱ* buffer;
};
Vector::Vector(int s){
buffer=new int[size=s];
for(int i=0;i<size; i++)
buffer[i]=i*i;
}
Vector::Vector(Vector & v)
3、以下程序实际要输出0~9之间每个数的平方,请用增加拷贝构造函数的方法避免存在的问题。
#include<iostream>
using namespace std;
class Vector{
public:
Vector(int s=100);
Vector(Vector & v);
void Display();
Complex Add(Complex &c2);
void display();
private:
double real;
double imag;
};
Complex Complex::Add(Complex &c2)
{
Complex c;
c.real=c2.real+real;
c.imag=c2.imag+imag;
int f;
};
class AD:public RMB
{
public:
AD qu(RMB &c1,RMB &c2);
AD cun(RMB &C1,RMB &c2);
};
AD AD::qu(RMB &c1,RMB &c2)
{
AD b;
b.f=c1.f-c2.f;
if(b.f<0)
{
c1.j=c1.j-1;
return c;
}
void Complex::display()
{
cout <<real <<"," <<imag <<"i" <<endl;
}
int main()
{
Complex c1(3,4),c2(5,-10),c3;
c3=c1.Add(c2);
cout <<"c1=";c1.display();
void Vector::Set(){
for(int j=0; j<size; j++)
buffer[j]=j+1;
}
Vector::~Vector(){ delete[]buffer;}
int main()
{ Vector a(10);
Vector b(a);
a.Set();
b.Display();
实验二运算符重载
1.实验目的:
1.学习定义和使用重载运算符。
2.熟悉拷贝构造函数。
2.实验任务:
1、对比通过函数来实现复数相加和通过重载运算符实现复数相加的不同之处。
2、定义RMB类,数据成员有yuan、jf,请为该类定义构造函数、并重载“+”、“-”、“<<”、“>>”。
选做:定义账户类,有账号、户名、余额等属性,具有存款、取款等操作,可以把RMB类对象作为成员,进行存取款操作。
cout <<"c2=";c2.display();
cout <<"c1+c2=";c3.display();
return 0;
}
(2)通过运算符重载:
#include"iostream"
using namespace std;
class Complex
{
public:
Complex(){real=0;imag=0;};
b.f=b.f+10;
b.j=c1.j-c2.j;
if(b.j<0)
{
c1.yuan=c1.yuan-1;
b.j=b.j+10;
b.yuan=c1.yuan-c2.yuan;
}
else
{
b.yuan=c1.yuan-c2.yuan;
}
}
else
{
b.j=c1.j-c2.j;
if(b.j<0)
{
c1.yuan=c1.yuan-1;