Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals 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;
}
#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