Overload Operators

Sort by

recency

|

134 Discussions

|

  • + 0 comments

    include

    include

    include

    include

    include

    using namespace std; class Complex{ public: int real,imag; void input(){ string input; cin >> input;

    size_t i_pos = input.find('i');
    if (i_pos != string::npos) {
        size_t sign_pos = input.find("+i");
        if (sign_pos == string::npos)
            sign_pos = input.find("-i");
        if (sign_pos != string::npos) {
            real = stoi(input.substr(0, sign_pos)); 
            imag = stoi(input.substr(sign_pos + 2)); 
            if (input[sign_pos] == '-')
                imag = -imag;
        }
        }
    }
    Complex operator+(const Complex& other )
    {
        Complex result;
        result.real=this->real+other.real;
        result.imag=this->imag+other.imag;
        return result;
    }
    friend ostream& operator<<(ostream& os, const Complex& c)
    {
        os << c.real << "+i" << c.imag;
        return os;
    }
    

    };

    int main() { Complex x,y; Complex result; x.input(); y.input(); result=x+y; cout<

  • + 0 comments

    Here is Overload Operators solution in c++ - https://programmingoneonone.com/hackerrank-overload-operators-solution-in-cpp.html

  • + 0 comments

    class Complex { private: int real; int imag;

    public:
    Complex(int r = 0, int i = 0)
    {
        real = r;
        imag = i;
    
    }
    
    Complex(const string& s)
    {
        int pos;
        pos = s.find('i');
        if(pos!= string::npos)
        {
            real = stoi(s.substr(0,pos-1));
            imag = stoi(s.substr(pos+1));
            if(s[pos-1] == '-')
            {
                imag = - imag;
            }
        }
    }
    
    Complex operator + (Complex const & Obj)
    {
        Complex res;
        res.real = real + Obj.real;
        res.imag = imag + Obj.imag;
        return res;
    }
    
    void print() { cout << real << "+i" << imag << '\n'; }
    

    }; int main() {

    string s1, s2;
    cin >> s1>>s2;
    
    Complex c1(s1);
    Complex c2(s2);
    
    Complex c3 = c1 + c2;
    
    c3.print();
    
    return 0;
    

    }

  • + 0 comments

    include

    include

    using namespace std;

    class Complex { public: int a, b; friend ostream& operator << (ostream& os, Complex obj); friend Complex operator + (Complex& a_obj, Complex& b_obj); };

    ostream& operator << (ostream& os, Complex obj) { os << obj.a << "+i" << obj.b; return os; }

    Complex operator + (Complex& a_obj, Complex& b_obj) { Complex c_obj; c_obj.a = a_obj.a + b_obj.a; c_obj.b = a_obj.b + b_obj.b; return c_obj; }

    void call_complex(string& s, int& a, int& b) { int num = 0; int i = 1; for (auto x : s) { if (x == '+') { continue; } else if (x == 'i') { a = num; num = 0; i = 1; continue; } num = num * i + (x - 48); i = 10; } b = num; }

    int main() {

    int a, b;
    string s;
    
    getline(cin, s);
    call_complex(s, a, b);
    
    Complex obj1{a, b};
    
    getline(cin, s);
    call_complex(s, a, b);
    
    Complex obj2{a, b};
    
    Complex obj3 = obj1 + obj2;
    cout << obj3 << endl;
    
    return 0;
    

    }

  • + 0 comments

    include

    include

    include

    include

    include

    using namespace std;

    class complex { private: int real; int img;

    public:
    
    
      void setReal(int r);
      void setImg(int i);
      int getReal();
      int getImg();
    
      complex operator+(complex c)
      {
        complex temp;
        temp.real=real+c.real;
        temp.img=img+c.img;
        return temp;
      }
    
    friend ostream & operator<<(ostream & out,complex c);  
    friend istream & operator>>(istream & in,complex &c);  
    

    };

    int main() { complex c1,c2,c3; cin>>c1; cin>>c2;

       c3=c1+c2;
       cout<<c3;
    
    return 0;
    

    } void complex::setReal(int r){real=r;} void complex::setImg(int i){img=i;} int complex::getReal(){return real;} int complex::getImg(){return img;} ostream & operator<<(ostream & out,complex c) { out<>(istream & in,complex &c) { in>>c.real; in.ignore(1,'+'); in.ignore(1,'i'); in>>c.img;

    return in;
    

    }