C++تعريف دالة بداخل كلاس
من المهم جداً معرفة أنه يمكنك تعريف دوال الكلاس بطريقتين:
- تعريف الدالة كما هي بداخل الكلاس.
- تعريف شكل الدالة ( Function Header أو Prototype ) فقط بداخل الكلاس و تعريف محتوى الدالة ( Function Body ) خارج تعريف الكلاس.
في المثال التالي, قمنا بتعريف كلاس إسمه Book
يمثل المعلومات التي يمكن أن يتضمنها أي كتاب كعنوانه, إسم المؤلف, سعره و عدد صفحاته.
كما أننا قمنا بوضع دالة إسمها printInfo
بداخل الكلاس عند استدعاءها من أي كائن ننشئه منه فتقوم بطباعة قيمه بشكل مرتب.
في الأخير قمنا بإنشاء كائن من Book
و إعطاؤه قيم, و من ثم إستدعاء الدالة printInfo()
منه حتى تقوم بطباعة قيمه.
المثال الأول
using namespace std; // يحتوي على 4 متغيرات Book هنا قمنا بتعريف كلاس إسمه class Book { public: string title; string author; double price; int numberOfPages; // تقوم بطباعة كل قيم المتغيرات الموجودة فيه Book عند استدعاءها من أي كائن ننشئه من printInfo هنا قمنا بتعريف دالة إسمها void printInfo() { cout << "Title: " << title << "\n"; cout << "Author: " << author << "\n"; cout << "Price: " << price << "$\n"; cout << "Number of pages: " << numberOfPages << "\n"; } }; // main() هنا قمنا بتعريف الدالة int main() { // book إسمه Book هنا قمنا بتعريف كائن من Book book; // book هنا قمنا بإعطاء قيم لمتغيرات الكائن book.title = "C++ for beginners"; book.author = "Mhamad Harmush"; book.price = 9.99; book.numberOfPages = 420; // حتى تقوم بطباعة القيم الموجودة فيه book من الكائن printInfo() هنا قمنا باستدعاء الدالة book.printInfo(); return 0; }
سنحصل على النتيجة التالية عند التشغيل.
Title: C++ for beginners Author: Mhamad Harmush Price: 9.99$ Number of pages: 420
هنا قمنا بإعادة المثال السابق مع فارق واحد و هو أننا قمنا بتعريف شكل الدالة ( Prototype ) فقط بداخل الكلاس و محتواها خارجه.
المثال الثاني
using namespace std; // يحتوي على 4 متغيرات Book هنا قمنا بتعريف كلاس إسمه class Book { public: string title; string author; double price; int numberOfPages; // printInfo() هنا قمنا بتعريف شكل الدالة void printInfo(); }; // و جعلناها تقوم بطباعة قيم متغيرات الكائن الذي يستدعيها Book الموجودة في الكلاس printInfo هنا قمنا بتعريف محتوى الدالة void Book::printInfo() { cout << "Title: " << title << "\n"; cout << "Author: " << author << "\n"; cout << "Price: " << price << "$\n"; cout << "Number of pages: " << numberOfPages << "\n"; } // main() هنا قمنا بتعريف الدالة int main() { // book إسمه Book هنا قمنا بتعريف كائن من Book book; // book هنا قمنا بإعطاء قيم لمتغيرات الكائن book.title = "C++ for beginners"; book.author = "Mhamad Harmush"; book.price = 9.99; book.numberOfPages = 420; // حتى تقوم بطباعة القيم الموجودة فيه book من الكائن printInfo() هنا قمنا باستدعاء الدالة book.printInfo(); return 0; }
سنحصل على النتيجة التالية عند التشغيل.
Title: C++ for beginners Author: Mhamad Harmush Price: 9.99$ Number of pages: 420