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

C++تعريف دالة بداخل كلاس

من المهم جداً معرفة أنه يمكنك تعريف دوال الكلاس بطريقتين:

  • تعريف الدالة كما هي بداخل الكلاس.
  • تعريف شكل الدالة ( Function Header أو Prototype ) فقط بداخل الكلاس و تعريف محتوى الدالة ( Function Body ) خارج تعريف الكلاس.

في المثال التالي, قمنا بتعريف كلاس إسمه Book يمثل المعلومات التي يمكن أن يتضمنها أي كتاب كعنوانه, إسم المؤلف, سعره و عدد صفحاته.
كما أننا قمنا بوضع دالة إسمها printInfo بداخل الكلاس عند استدعاءها من أي كائن ننشئه منه فتقوم بطباعة قيمه بشكل مرتب.

في الأخير قمنا بإنشاء كائن من Book و إعطاؤه قيم, و من ثم إستدعاء الدالة printInfo() منه حتى تقوم بطباعة قيمه.

المثال الأول

main.cpp
#include <iostream>
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;
}
#include <iostream> 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
Title: C++ for beginners Author: Mhamad Harmush Price: 9.99$ Number of pages: 420

هنا قمنا بإعادة المثال السابق مع فارق واحد و هو أننا قمنا بتعريف شكل الدالة ( Prototype ) فقط بداخل الكلاس و محتواها خارجه.

المثال الثاني

main.cpp
#include <iostream>
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;
}
#include <iostream> 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
Title: C++ for beginners Author: Mhamad Harmush Price: 9.99$ Number of pages: 420