Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

C++مثال حول إضافة كائن على كائن بواسطة العامل +

في المثال التالي سنقوم بتطبيق إحدى قواعد الرياضيات التي نستخدمها لقياس المسافة بين نقطتين.
بالمبدأ كل نقطة سيكون لديها قيمة أفقية نرمز لها بالحرف x و قيمة عامودية نرمز لها بالحرف y.

الآن بما أننا سنحتاج لنقطتين و كل نقطة عندها x و y فمن المنطقي أن ننشئ كلاس إسمه Point و نضع فيه متغيرين إسمهمها x و y.
عندها كلما أردنا إنشاء نقطة نقوم بإنشاء كائن من الكلاس Point و نعطيه قيم.

الكلاس Point وضعنا فيه كونستركتور لتمرير قيم بشكل مباشر للكائن الذي يتم إنشاؤه منه, كما أننا فعل Overload للعامل + حتى نستطيع استخدامه للحصول على المسافة الموجودة بين أي نقطتين (كائنين) من خلال وضعه بينهما.

مثال

main.cpp
#include <iostream>
#include <cmath>

using namespace std;

// الذي يمثل النقطة Point هنا قمنا بتعريف الكلاس
class Point {

    public:
        // هنا قمنا بتعريف خصائص الكلاس
        int x;
        int y;

        // هنا قمنا بتعريف كونستركتور الكلاس بهدف إعطاء قيم أولية لخصائص الكائن الذي يتم إنشاؤه من الكلاس
        Point(int x, int y)
        {
            this->x = x;
            this->y = y;
        }

        // و الحصول على المسافة بينهما Point على كائن من الكلاس Point للرمز + حتى نستطيع إضافة كائن من الكلاس overload هنا فعلنا
        double operator+ (Point point)
        {
            return sqrt(pow(point.x - this->x, 2) + pow(point.y - this->y, 2));
        }
};

// main() هنا قمنا بتعريف الدالة
int main()
{
    // أي نقطتين ,Point هنا قمنا بإنشاء كائنين من الكلاس
    Point p1(1, 5);
    Point p2(4, 8);

    // distance و من ثم قمنا بتخزين الناتج في المتغير p2 و النقطة p1 هنا قمنا باستخدام العامل + للحصول على المسافة الموجودة بين النقطة
    double distance = p1 + p2;

    // distance هنا قمنا بعرض المسافة بين النقطتين و التي قمنا بتخزينها في المتغير
    cout << "Distance between p1 and p2 = " << distance;

    return 0;
}

سنحصل على النتيجة التالية عند التشغيل.

Distance between p1 and p2 = 4.24264