C++مثال حول إضافة كائن على كائن بواسطة العامل +
في المثال التالي سنقوم بتطبيق إحدى قواعد الرياضيات التي نستخدمها لقياس المسافة بين نقطتين.
بالمبدأ كل نقطة سيكون لديها قيمة أفقية نرمز لها بالحرف x
و قيمة عامودية نرمز لها بالحرف y
.
الآن بما أننا سنحتاج لنقطتين و كل نقطة عندها x
و y
فمن المنطقي أن ننشئ كلاس إسمه Point
و نضع فيه متغيرين إسمهمها x
و y
.
عندها كلما أردنا إنشاء نقطة نقوم بإنشاء كائن من الكلاس Point
و نعطيه قيم.
الكلاس Point
وضعنا فيه كونستركتور لتمرير قيم بشكل مباشر للكائن الذي يتم إنشاؤه منه, كما أننا فعل Overload للعامل +
حتى نستطيع استخدامه للحصول على المسافة الموجودة بين أي نقطتين (كائنين) من خلال وضعه بينهما.
مثال
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