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

C++طريقة وضع باراميترات في الدالة ليس لها نوع محدد

في المثال التالي قمنا بتعريف الحرف E كنوع بيانات غير محدد.
بعدها قمنا بتعريف دالة إسمها printArray() عند استدعائها نمرر لها مصفوفة من أي نوع كان مع تمرير عدد عناصرها, فتقوم بطباعة جميع القيم الموجودة فيها.

مثال

main.cpp
#include <iostream>
using namespace std;

// و هو خاص بالدالة التي سنقوم بتعريفها بعده E هنا قمنا بتعريف نوع بيانات غير محدد قمنا بتسميته
template <typename E>

// length و حجم المصفوفة مكان الباراميتر arr عند استدعاءها نمرر لها مصفوفة من أي نوع مكان الباراميتر printArray هنا قمنا بتعريف دالة إسمها
void printArray(E arr[], int length)
{
    // على سطر واحد arr هنا قمنا بإنشاء حلقة تعرض جميع عناصر المصفوفة
    for(int i=0; i<length; i++)
    {
        cout << arr[i] << " ";
    }
    
    // بعد عرض جميع العناصر سيتم النزول على سطر جديد
    cout << endl;
}

// main() هنا قمنا بتعريف الدالة
int main()
{
    // هنا قمنا بتعريف ثلاث مصفوفات كل واحدة منهم تحتوي على نوع مختلف من البيانات
    int arr1[] = {1, 2, 3, 4, 5};
    char arr2[] = {'a', 'b', 'c', 'd', 'e'};
    string arr3[] = {"I'm", "learning" ,"C++", "in", "harmash.com"};

    // مع تحديد نوع كل مصفوفة سيتم تمريرها arr3 و arr2 و arr1 لطباعة قيم المصفوفات الثلاثة printArray() هنا قمنا باستدعاء الدالة
    printArray<int>(arr1, 5);
    printArray<char>(arr2, 5);
    printArray<string>(arr3, 5);

    return 0;
}

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

1 2 3 4 5
a b c d e
I'm learning C++ in harmash.com

إذاً هنا في كل مرة تقوم فيها باستدعاء الدالة printArray() يتم تبديل الحرف E بشكل تلقائي بنوع المصفوفة التي تم تمريرها لها.