Avatar ·

كيفية تعريف واستخدام typedef لمؤشر لدالة في C++؟

مرحبًا بالجميع! أنا مطور C++ مبتدئ، وقد حدث لديّ ارتباك مع صيغة تعريف مؤشرات الدوال. أحاول كتابة آلة حاسبة بسيطة تستدعي العملية الحسابية المناسبة بناءً على اختيار المستخدم. بدلاً من كتابة switch-case طويل، أريد استخدام مصفوفة من مؤشرات الدوال. رأيت أنه يمكن تعريف مؤشر لدالة مباشرة، لكن هذا يبدو مرهقًا جدًا. على سبيل المثال، للدالة `int add(int a, int b)` سأكتب `int (*funcPtr)(int, int) = add`. وإذا كان لدي 4 دوال (add, subtract, multiply, divide)، فسأحتاج إلى 4 تعريفات من هذا القبيل. سمعت في مكان ما عن `typedef` لتبسيط هذه المهمة. جربت كتابة: ```cpp typedef int (*Operation)(int, int); ``` لكن المترجم يشتكي أو لا أفهم كيفية استخدامه بشكل صحيح. يبدو لي أن كتابتي خاطئة، لأنني لا أستطيع بعد ذلك إنشاء مصفوفة من هذه المؤشرات. أريد فعل شيء مثل: ```cpp Operation ops[4] = {add, subtract, multiply, divide}; ``` لكن