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

C++مثال حول تخصيص تعريف العامل ++

في المثال التالي قمنا بتعريف كلاس إسمه Player يحتوي على ثلاث متغيرات تمثل المعلومات العامة التي يمكن أن يمتلكها اللاعب مثل رتبته grade في اللعبة و سرعته speed و كمية المال money التي جمعها, بالإضافة إلى دالة إسمها printInfo تعرض قيم هذه المتغيرات بشكل مرتب.

هنا افترضنا أن أي لاعب جديد ستكون رتبته تساوي 1 و سرعته تساوي 1 و لا يملك أي مال.
عند ترقية اللاعب سيتم زيادة رتبته و سرعته بمقدار 1 و سيتم إعطاؤه مبلغ 1000 أيضاً.

لنريك كيف يمكن أن تفعل Overload لعامل, قمنا بتخصيص العامل ++ لكي نستخدمه كلما أردنا ترقية اللاعب.

في الأخير بإنشاء كائن من الكلاس Player (أي كأننا قمنا بإنشاء لاعب) و من ثم تجربة ترقيته بواسطة العامل ++.

مثال

main.cpp
#include <iostream>
using namespace std;
// الذي يمثل اللاعب Player هنا قمنا بتعريف الكلاس
class Player {
public:
// هنا قمنا بتعريف خصائص الكلاس
int grade;
int speed;
int money;
// هنا قمنا بتعريف كونستركتور الكلاس بهدف إعطاء قيم أولية لخصائص الكائن الذي يتم إنشاؤه من الكلاس
Player()
{
grade = 1;
speed = 1;
money = 0;
}
// هنا قمنا بتعريف دالة تقوم بطباعة قيم خصائص الكائن بشكل مرتب عندما يتم استدعاؤه
void printInfo()
{
cout << "Grade = " << grade << endl;
cout << "Speed = " << speed << endl;
cout << "Money = " << money << endl;
cout << "----------------\n";
}
// هنا قمنا بتعريف ما سيحدث عند استدعاء الرمز ++ من أي كائن ننشئه من الكلاس
void operator++ (int)
{
// سيضاف عليها 1000 money سيضاف عليها 1 و قيمة speed سيضاف عليها 1 و قيمة grade قيمة
grade += 1;
speed += 1;
money += 1000;
}
};
// main() هنا قمنا بتعريف الدالة
int main()
{
// أي لاعب جديد ,Player هنا قمنا بإنشاء كائن من الكلاس
Player player;
// player لعرض القيم الإفتراضية التي يملكها الكائن printInfo() هنا قمنا باستدعاء الدالة
player.printInfo();
// حتى يتم ترقيته player هنا قمنا باستدعاء الرمز ++ من الكائن
player++;
// player من جديد لعرض القيم التي أصبحها يملكها الكائن printInfo() هنا قمنا باستدعاء الدالة
player.printInfo();
return 0;
}
#include <iostream> using namespace std; // الذي يمثل اللاعب Player هنا قمنا بتعريف الكلاس class Player { public: // هنا قمنا بتعريف خصائص الكلاس int grade; int speed; int money; // هنا قمنا بتعريف كونستركتور الكلاس بهدف إعطاء قيم أولية لخصائص الكائن الذي يتم إنشاؤه من الكلاس Player() { grade = 1; speed = 1; money = 0; } // هنا قمنا بتعريف دالة تقوم بطباعة قيم خصائص الكائن بشكل مرتب عندما يتم استدعاؤه void printInfo() { cout << "Grade = " << grade << endl; cout << "Speed = " << speed << endl; cout << "Money = " << money << endl; cout << "----------------\n"; } // هنا قمنا بتعريف ما سيحدث عند استدعاء الرمز ++ من أي كائن ننشئه من الكلاس void operator++ (int) { // سيضاف عليها 1000 money سيضاف عليها 1 و قيمة speed سيضاف عليها 1 و قيمة grade قيمة grade += 1; speed += 1; money += 1000; } }; // main() هنا قمنا بتعريف الدالة int main() { // أي لاعب جديد ,Player هنا قمنا بإنشاء كائن من الكلاس Player player; // player لعرض القيم الإفتراضية التي يملكها الكائن printInfo() هنا قمنا باستدعاء الدالة player.printInfo(); // حتى يتم ترقيته player هنا قمنا باستدعاء الرمز ++ من الكائن player++; // player من جديد لعرض القيم التي أصبحها يملكها الكائن printInfo() هنا قمنا باستدعاء الدالة player.printInfo(); return 0; }

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

Grade = 1
Speed = 1
Money = 0
----------------
Grade = 2
Speed = 2
Money = 1000
----------------