#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
#include<stdio.h>
class Array
{
protected:
int n;
float *val;
public:
Array()
{
n=0;
}
Array(int m);
Array(const Array& b);
~Array()
{
delete val;
}
friend istream& operator>>(istream& is,Array &a);
friend ostream& operator<<(ostream& os,Array &a);
virtual Array operator+(Array& b);
virtual Array operator-(Array& b);
};
//======Khoi tao mang co n phan tu==============
Array::Array(int m)
{
n=m;
val=new float[n];
}
//======Khoi tao 1 mang tu 1 mang da co=========
Array::Array(const Array& b)
{
this->n=b.n;
this->val=new float[n];
for(int i=0;i<this->n;i++)
{
this->val[i]=b.val[i];
}
}
//=======Ham da nang toan tu nhap============
istream& operator>>(istream& is,Array& a)
{
cout<<"\nArray "<<a.
n<<"phan tu!"; for(int i=0;i<a.n;i++)
{
cout<<"\nNhap phan tu thu "<<i
+1<<":"; is>>a.val[i];
}
return is;
}
//=======Ham da nang toan tu xuat============
ostream& operator<<(ostream& os,Array& a)
{
for(int i=0;i<a.n;i++)
{
os<<setw(6)<<setprecision(1)<<a.val[i];/*
<<setioflags (ios::fixed)
<<setiosflag (ios::showpoint)<<a.val[i];*/
// printf("%6.3f",a.val[i]);
}
return os;
}
//======Ham cong mang===================
Array Array::operator+(Array& b)
{
if(n!=b.n)
{
cout<<"\nHai Array co size khac nhau"; return *this;
}
else
{
Array kq;
kq.n=n;
kq.val=new float[kq.n];
for(int i=0;i<kq.n;i++)
{
kq.val[i]=val[i]+b.val[i];
}
return kq;
}
}
//=========Hieu hai Array=====================
Array Array::operator-(Array& b)
{
if(n!=b.n)
{
cout<<"\nHai Array co size khac nhau"; return *this;
}
else
{
Array kq;
kq.n=n;
kq.val=new float[kq.n];
for(int i=0;i<kq.n;i++)
{
kq.val[i]=val[i]-b.val[i];
}
return kq;
}
}
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
class Vector:public Array
{
public:
Vector()
{
n=0;
}
Vector(int m);
Vector(Vector& v);
~Vector()
{
delete val;
}
friend istream& operator>>(istream& is,Vector &vt);
friend ostream& operator<<(ostream& os,Vector &vt);
Vector operator+(Vector& b);
//Vector operator-(Vector& b);
};
//&&&&&&_Ham khoi tao Vector n chieu_&&&&&&&&&&&
Vector::Vector(int schieu)//:Array(int m)
{
n=schieu;
val=new float[n];
}
//$$$$$$_Ham khoi tao Vector tu mot Vector da co_&&&&&
Vector::Vector(Vector& v)
{
this->val=new float[this->n=v.n];
for(int i=0;i<this->n;i++)
this->val[i]=v.val[i];
}
//#$$$$_Ham da nang toan tu nhap_$$$$$$$$$$$
istream& operator>>(istream& is,Vector& vt)
{
cout<<"\nSo chieu cua Vector la:"<<vt.
n; for(int i=0;i<vt.n;i++)
{
cout<<"\nChieu thu "<<i
+1<<": "; is>>vt.val[i];
}
return is;
}
//$$$$$_Ham da nang toan tu xuat_$$$$$$$$$$$
ostream& operator<<(ostream& os,Vector& vt)
{
os<<"\n(";
for(int i=0;i<vt.n;i++)
{
os<<vt.val[i]<<", ";
}
os<<")";
return os;
}
//$$$$$$$$_Ham cong hai Vector_$$$$$$$$$$$
Vector Vector::operator+(Vector& b)
{
Array::operator+(b);
return ?????;
}
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//
void main()
{
clrscr();
/* Array a(4);
Array b=a,c,d;
cout<<"\nNhap Array thu nhat:"; cin>>a;
cout<<"\nArray thu nhat la:"; cout<<a;
cout<<"\nArray thu hai duoc khoi tao tu Array thu nhat la:";
cout<<(b=a);
Array a(4),b(4),c,d;
cout<<"\nNhap Array thu nhat:"; cin>>a;
cout<<"\nArray thu nhat la:"; cout<<a;
cout<<"\nNhap Array thu hai:"; cin>>b;
cout<<"\nArray thu hai la:"; cout<<b;
c=a+b;
cout<<"\nGia tri Array tong:"; cout<<c;
d=a-b;
cout<<"\n\nGia tri Array hieu:"; cout<<d;*/
///////////////////////////////////////
Vector vt(3);
cout<<"\nNhap Vector thu nhat:"; cin>>vt
;
getch();
}