Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الـ Methods (الدوال الأعضاء)

جزء من قسم Object Oriented Programming في رحلة C++ على Coddy — الدرس 8 من 104.

تُعرّف الدوال العضوة (Member functions) ما يمكن للكائن فعله. ولها نوع إرجاع، واسم، ومعاملات اختيارية.

دالة ترجع قيمة

class Calculator {
public:
    int add(int a, int b) {
        return a + b;
    }
};

دالة Void (بدون قيمة إرجاع)

class Printer {
public:
    void printMessage(std::string msg) {
        std::cout << msg << std::endl;
    }
};

دالة تعيد bool

class Checker {
public:
    bool isPositive(int num) {
        return num > 0;
    }
};

التصريح في الترويسة، والتنفيذ في المصدر

// Calculator.h
class Calculator {
public:
    int add(int a, int b);
};

// Calculator.cpp
int Calculator::add(int a, int b) {
    return a + b;
}

يأتي نوع الإرجاع قبل اسم الطريقة. استخدم void عندما لا ترجع الطريقة أي شيء. يربط عامل دقة النطاق :: التنفيذات بالفئة الخاصة بها.

challenge icon

التحدي

متوسط

قم بتنفيذ أربع دوال أعضاء (member functions) لفئة StringHelper بأنواع إرجاع ومعاملات مختلفة:

  • getLength() — تعيد int، وهو طول النص
  • toUpperCase() — تعيد std::string، وهو النص بأحرف كبيرة
  • contains(std::string word) — تعيد bool، ما إذا كان النص يحتوي على الكلمة
  • repeat(int times) — تعيد std::string، وهو النص مكرراً مع مسافات

ورقة مرجعية

تُحدد الدوال الأعضاء (Member functions) ما يمكن للكائن فعله. ولها نوع إرجاع، واسم، ومعاملات اختيارية.

دالة (Method) تُرجع قيمة:

class Calculator {
public:
    int add(int a, int b) {
        return a + b;
    }
};

دالة من نوع Void (لا تُرجع قيمة):

class Printer {
public:
    void printMessage(std::string msg) {
        std::cout << msg << std::endl;
    }
};

دالة تُرجع قيمة منطقية (bool):

class Checker {
public:
    bool isPositive(int num) {
        return num > 0;
    }
};

التصريح في ملف الرأس (header)، والتنفيذ في ملف المصدر (source):

// Calculator.h
class Calculator {
public:
    int add(int a, int b);
};

// Calculator.cpp
int Calculator::add(int a, int b) {
    return a + b;
}

يأتي نوع الإرجاع قبل اسم الدالة. استخدم void عندما لا تُرجع الدالة أي شيء. يربط عامل دقة النطاق (scope resolution operator) :: التنفيذات بالفئة الخاصة بها.

جرّب بنفسك

#include <iostream>
#include "StringHelper.h"

int main() {
    std::string input;
    std::getline(std::cin, input);
    
    StringHelper helper;
    helper.text = input;
    
    std::cout << "Original: " << helper.text << std::endl;
    std::cout << "Length: " << helper.getLength() << std::endl;
    std::cout << "Uppercase: " << helper.toUpperCase() << std::endl;
    std::cout << "Contains 'World': " << (helper.contains("World") ? "yes" : "no") << std::endl;
    std::cout << "Repeated: " << helper.repeat(3) << std::endl;
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming