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;
}
		

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

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;
}
		

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

Title: C++ for beginners
Author: Mhamad Harmush
Price: 9.99$
Number of pages: 420
		

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة