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

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

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