C++(Cplusplus) ile operatörlerin aşırı yüklenmesi


Operasyon isimli bir sınıf oluşturarak, operatörlerin aşırı yüklenmesini kullanarak aşağıdaki işlemleri yaptırınız.
A = {2,8,5,7,11}
B = {2,3,4,2,2}
C=A+B yazıldığında iki dizinin elemanlarını toplayıp döndürecek
C=A*B yazıldığında iki dizinin elemanlarını çarpacak
C=A&B yazıldığında iki AB şeklinde karşılıklı elemanları üstel hesaplama yapıp döndürecektir.
 


#include <iostream>
#include "bits/stdc++.h"
using namespace std;
#define N 5


class Operasyon{

    int dizi[N];
public:

    void giris(vector<int> & A);
    void goster();

    void operator+(Operasyon x);
    void operator*(Operasyon x);
    void operator&(Operasyon x);

};

void Operasyon::giris(vector<int> & A) {
    for (int i=0;i<N;i++){
        dizi[i]=A[i];
    }
}

void Operasyon::goster() {
      for(int i=0;i<N;i++)
      {
          cout <<dizi[i]<<endl;
      }
}

void Operasyon::operator+(Operasyon x) {
    int b[5];
    for (int i=0;i<N;i++){
          b[i]=dizi[i]+x.dizi[i];

    }
    cout<<"\nToplam sonuc:"<<endl;
    for (int i=0;i<N;i++){
        cout <<b[i] <<" ";

    }
}

void Operasyon::operator*(Operasyon x) {
    int b[5];
    for (int i=0;i<N;i++){
        b[i]=dizi[i]*x.dizi[i];

    }
    cout<<"\nCarpim sonuc:"<<endl;
    for (int i=0;i<N;i++){
        cout <<b[i] <<" ";

    }
}

void Operasyon::operator&(Operasyon x) {
    int b[5];
    for (int i=0;i<N;i++){
        b[i]=pow(dizi[i], x.dizi[i]);

    }
    cout<<"\nUstel sonuc:"<<endl;
    for (int i=0;i<5;i++){
        cout <<b[i] <<" ";

    }
}


int main() {

    vector<int> d1={2,2,2,2,2};
    vector<int> d2={2,3,4,5,6};

    Operasyon o1, o2;
    o1.giris(d1);
    o2.giris(d2);

    o1+o2;
    o1*o2;
    o1&o2;


    cout<<""<<"\n";

    return 0;
}


Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak,2021
Bookmark and Share