Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class cube{
- friend class a_cube;
- private:
- double x,y,z,r;
- public:
- cube(double X=1, double Y=1, double Z=1, double R=1){x=X;y=Y;z=Z;r=R;}
- cube (const cube& A){x=A.x;y=A.y;z=A.z;r=A.r;}
- void operator=(const cube& A){x=A.x; y=A.y; z=A.z; r=A.r;}
- friend cube operator-(cube,cube);
- friend cube operator*(cube, double);
- friend cube tranform(double,double,double,double);
- };
- class a_cube {
- private:
- cube *x; //указатель на куб
- int n;
- public:
- a_cube(int);
- a_cube(const a_cube&);
- ~a_cube();
- void set(int,cube);//вставляем куб на позицию
- void operator=(const a_cube&);//оператор присваивания
- cube operator[](int) const;//возвращаем с позиции
- friend a_cube operator-(const a_cube&, const a_cube&);
- friend a_cube operator*(const a_cube&, double);//оператор умножения
- friend a_cube operator*(double, const a_cube&);
- void show();
- void del(int);
- };
- void a_cube::del(int N){
- cube *tmp;
- tmp=new cube[n-1];
- for(int i=0;i<N;i++)
- tmp[i]=x[i];
- for(int i=N+1;i<n;i++)
- tmp[i-1]=x[i];
- delete[]x;
- x=tmp;
- n--;
- }
- a_cube::a_cube(const a_cube& A){//копиконструктор
- n=A.n;
- x=new cube [n];
- for(int i=0;i<n;i++)
- x[i]=A.x[i];
- }
- void a_cube::operator=(const a_cube& A){//оператор присваивания
- n=A.n;
- x=new cube[n];
- for(int i=0;i<n;i++)
- x[i]=A.x[i];
- }
- cube tranform(double x, double y, double z, double r) {
- cube tmp;
- tmp.x=x;
- tmp.y=y;
- tmp.z=z;
- tmp.r=r;
- return tmp;
- }
- a_cube::a_cube(int N){//конструктор
- n=N;
- x=new cube[n];
- }
- a_cube::~a_cube(){//деструктор
- delete[]x;
- }
- void a_cube::set(int N, cube tmp){
- if(n<N) return;
- x[N]=tmp;
- }
- cube a_cube::operator[](int N)const{
- return x[N];
- }
- a_cube operator-(const a_cube& a, const a_cube& b){
- a_cube c(a.n);
- for(int i=0;i<c.n;i++)
- c.set(i,a[i]-b[i]);
- return c;
- }
- cube operator-(cube a, cube b){
- return tranform(a.x-b.x,a.y-b.y,a.z-b.z,a.r-b.r);
- }
- cube operator*(cube a, double b){
- return tranform(a.x*b,a.y*b,a.z*b,a.r*b);
- }
- a_cube operator*(const a_cube& a, double k){
- a_cube c(a.n);
- for(int i=0;i<c.n;i++)
- c.set(i, a[i]*k);
- return c;
- }
- a_cube operator*(double k, const a_cube& a){
- return a*k;
- }
- void a_cube::show(){
- cout<<endl<<"X:"; for(int i=0;i<n;i++) cout<<x[i].x<<" ";
- cout<<endl<<"Y:"; for(int i=0;i<n;i++) cout<<x[i].y<<" ";
- cout<<endl<<"Z:"; for(int i=0;i<n;i++) cout<<x[i].z<<" ";
- cout<<endl<<"R:"; for(int i=0;i<n;i++) cout<<x[i].r<<" ";
- cout<<endl;
- }
- int main() {
- }
Advertisement
Add Comment
Please, Sign In to add comment