Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การบวกสองจำนวนด้วยโอเปอเรเตอร์ '-' ใน C++


Operator overloading (การโหลดโอเปอเรเตอร์ซ้ำ) เป็นแนวคิดสำคัญใน C++ เป็นรูปแบบหนึ่งของ polymorphism (พอลิморฟิซึม) ที่โอเปอเรเตอร์ถูกโหลดซ้ำเพื่อให้ความหมายที่ผู้ใช้กำหนดเอง โอเปอเรเตอร์ที่โหลดซ้ำจะถูกใช้เพื่อดำเนินการกับชนิดข้อมูลที่ผู้ใช้กำหนดเอง ตัวอย่างเช่น โอเปอเรเตอร์ '+' สามารถโหลดซ้ำเพื่อทำการบวกกับชนิดข้อมูลต่างๆ เช่น Integer, String (concatenation) ฯลฯ

อินพุต

10 20 20 30

เอาต์พุต

30 50

คำอธิบาย

เพื่อดำเนินการบวกสองจำนวนโดยใช้โอเปอเรเตอร์ '-' ผ่าน Operator overloading โอเปอเรเตอร์แบบไบนารี (Binary operators) จะต้องการอ็อบเจ็กต์หนึ่งเป็นอาร์กิวเมนต์เพื่อทำการดำเนินการ หากเราใช้ Friend functions จะต้องการสองอาร์กิวเมนต์

โอเปอเรเตอร์ถูกเรียกใช้: ob1 - ob2 อ็อบเจ็กต์ก่อนโอเปอเรเตอร์จะเรียกใช้ฟังก์ชัน และอ็อบเจ็กต์หลังโอเปอเรเตอร์จะถูกส่งเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน ดังนั้นในกรณีนี้ ob1 เป็น invoking object และ ob2 ถูกส่งเป็นอาร์กิวเมนต์

เราส่งค่า 10, 20 เป็นค่าของ x และ y ของ ob1 และ 20, 30 เป็นค่าของ x และ y ของ ob2

ตัวอย่าง

#include <iostream>
using namespace std;

class sum {
    public:
        int x, y, z;
        void getdata(int a, int b) {
            x = a;
            y = b;
        }
        void display() {
            cout << "\nSum of X:" << x;
            cout << "\nSum of Y:" << y;
        }
        void operator-(sum &);
};

void sum::operator-(sum &ob) {
    x = x + ob.x;
    y = y + ob.y;
    display();
}

int main() {
    sum ob1, ob2;
    ob1.getdata(10, 20);
    ob2.getdata(20, 30);
    ob1 - ob2;
}