ستد:: وظيفة هي فئة وظيفة قالب في ج++ ، وهو حاوية عالمية للوظائف. تسمح لك هذه الفئة بتخزين وتمرير وظائف من أنواع وتوقيعات مختلفة ، مثل الوظائف العادية والكائنات الوظيفية والمؤشرات إلى طرق الفصل وحتى وظائف لامدا.
والميزة الرئيسية لاستخدام الأمراض المنقولة جنسيا::وظيفة هي مرونته والقدرة على استخدامه في الحالات التي تحتاج إلى تمرير وظيفة كمعلمة أو حفظه للاستخدام في المستقبل. هذا النهج يجعل عملية التطوير أسهل ويجعل رمز البرنامج أكثر مرونة ووحدات.
لاستخدام ستد:: وظيفة ، يجب تحديد نوع قيمة الإرجاع وظيفة ومعلماتها. استخدام جدا من الأمراض المنقولة جنسيا::وظيفة بسيطة جدا: يمكنك إنشاء الأمراض المنقولة جنسيا:: كائن وظيفة وتعيينه وظيفة أو كائن وظيفي. يمكنك أيضا استدعاء هذا الكائن كدالة عادية باستخدام عامل التشغيل (). في نفس الوقت ، الأمراض المنقولة جنسيا::سوف وظيفة استدعاء وظيفة المحفوظة مع الحجج اللازمة وإرجاع نتائجه.
مثال على استخدام الأمراض المنقولة جنسيا:: وظيفة:
# تشمل
# تشمل
باطلة هيلوورلد () {
الأمراض المنقولة جنسيا:: كوت < < " مرحبا ، العالم!"<<الأمراض المنقولة جنسيا:: إندل;
}
كثافة العمليات الرئيسية () {
الأمراض المنقولة جنسيا:: وظيفة وظيفة = هيلوورلد;
وظيفة () ؛ / / استدعاء وظيفة هيلوورلد
العودة 0;
}
في هذا المثال ، يتم إنشاء وظيفة هيلوورلد ، الذي يخرج سلسلة " مرحبا ، العالم!". ثم يتم إنشاء كائن وظيفة ستد::مع نوع عودة باطلة ولا المعلمات ، التي يتم تعيين وظيفة هيلوورلد. بعد ذلك ، يتم استدعاء كائن الوظيفة كدالة منتظمة ، والخط " مرحبا ، العالم!"يتم عرضها على الشاشة.
وهكذا ، الأمراض المنقولة جنسيا::توفر وظيفة أداة مريحة للعمل مع أنواع مختلفة من الوظائف ويجعل من السهل على البرنامج في ج++. بفضل القدرات المرنة لهذه الفئة ، يمكنك بسهولة تمرير الوظائف كمعلمات ، وحفظها للاستخدام في المستقبل ومعالجتها ، مما يجعل الكود أكثر مرونة ووحدات.
- التعريف والغرض
- مزايا استخدام الأمراض المنقولة جنسيا:: وظيفة
- أمثلة على استخدام الأمراض المنقولة جنسيا::وظيفة
- مثال 1: تمرير دالة كوسيطة
- مثال 2: عودة الدالة
- مثال 3: استخدام الخوارزميات القياسية مع وظيفة الأمراض المنقولة جنسيا::
- مثال 4: تخزين أنواع مختلفة من الوظائف في حاوية
- سؤال وجواب
- ما هو الأمراض المنقولة جنسيا::وظيفة?
- كيفية استخدام الأمراض المنقولة جنسيا:: وظيفة?
- هل من الممكن استخدام الأمراض المنقولة جنسيا:: وظيفة لتخزين وظائف عضو الطبقة?
- كيف يمكنني استخدام الأمراض المنقولة جنسيا:: وظيفة لتخزين وظائف بالكاري?
- هل من الممكن استخدام الأمراض المنقولة جنسيا:: وظيفة لتخزين وظائف مع عدد التعسفي من الحجج?
- هل من الممكن استخدام الأمراض المنقولة جنسيا:: وظيفة كقيمة إرجاع وظيفة?
التعريف والغرض
من ستد::وظيفة هي فئة المجمع التي تقدمها لغة ج for لتخزين واستدعاء وظائف ، وأساليب الطبقة ، أو فونكتورس. إنه جزء من مكتبة سي standard القياسية.
والغرض الرئيسي من الأمراض المنقولة جنسيا::وظيفة هو إنشاء كائن قادر على تخزين مؤشرات لأنواع مختلفة من الوظائف. يتيح لك ذلك تمرير الوظائف كوسائط وإعادتها من وظائف أخرى ، وكذلك حفظها للاستدعاء لاحقا.
الأمراض المنقولة جنسيا:: تمثل فئة وظيفة استخراج واجهة مشتركة من الكائنات دعا. فمن متعدد الأشكال ويمكن تخزين مؤشرات إلى وظائف ، وأساليب ثابتة ، وظائف العادية ، وأساليب الطبقة ، و فونكتورس ، شريطة أن توقيعاتهم (الحجج وقيمة الإرجاع) تطابق تلك المعلنة في ستد::وظيفة.
فئة الأمراض المنقولة جنسيا::توفر الوظيفة القدرة على استخدام وظائف وطرق الفصل في سياق عام ، مما يجعلها مفيدة بشكل خاص عند العمل مع عمليات الاسترجاعات وعمليات الاسترجاعات وأنماط معالجة الأحداث والمهام المماثلة الأخرى.
مزايا استخدام الأمراض المنقولة جنسيا:: وظيفة
1. المرونة والراحة
من الأمراض المنقولة جنسيا::الوظيفة هي فئة غلاف عالمية من الوظائف تسمح لك بحفظ ونقل أي نوع من الوظائف بتوقيعات مختلفة.
2.
الأمراض المنقولة جنسيا:: وظيفة تعدد الأشكال يسمح لك لاستخدام تعدد الأشكال دون مؤشرات وظيفة أو وظائف افتراضية. يتيح لك ذلك تمرير الوظائف والأساليب كمعلمات أو تخزينها في هياكل البيانات.
3. القدرة على تخزين الدولة
من الأمراض المنقولة جنسيا:: وظيفة يمكن أن ينقذ ليس فقط المؤشر إلى وظيفة ، ولكن أيضا السياق ، والذي يسمح لك لنقل الدولة واستخدامها داخل وظيفة المحفوظة.
4. سهولة الاستخدام في المواقف المختلفة
، الأمراض المنقولة جنسيا:: وظيفة يمكن استخدامها لتنفيذ الاسترجاعات ، الاسترجاعات ، وظائف التعامل مع الحدث وغيرها من المهام. نظرا لمرونتها وتعدد استخداماتها ، تصبح وظيفة الأمراض المنقولة بالاتصال الجنسي أداة لا غنى عنها في تطوير البرمجيات.
5.
كفاءة الأمراض المنقولة جنسيا::وظيفة لديها تنفيذ فعال على أساس وقت الترجمة. يمكن استخدامه في المناطق الحرجة من التعليمات البرمجية دون خسائر خطيرة في الأداء.
6. التوافق مع المكتبات الأخرى و
معايير الأمراض المنقولة جنسيا::الوظيفة هي جزء من مكتبة سي standard القياسية ، لذلك يمكن استخدامها مع المكتبات والأدوات الأخرى ، باتباع معايير وممارسات التطوير المقبولة عموما.
ونظرا لهذه المزايا ، الأمراض المنقولة جنسيا::وظيفة هو أداة قوية للعمل مع وظائف في اللغة ج++. انها تسمح لك لجعل رمز أكثر مرونة ومفهومة وقابلة للتوسيع بسهولة.
أمثلة على استخدام الأمراض المنقولة جنسيا::وظيفة
الأمراض المنقولة جنسيا:: وظيفة هي أداة قوية في اللغة ج for للعمل مع وظائف ككائنات. يسمح لك بحفظ الوظائف وتمريرها واستدعائها ، بما في ذلك الوظائف العادية وكائنات الوظائف ومؤشرات الوظائف ووظائف لامدا. وفيما يلي بعض الأمثلة على استخدام الأمراض المنقولة جنسيا::وظيفة:
مثال 1: تمرير دالة كوسيطة
# تشمل
# تشمل
فواد برينتمسيج (كونست ستد::سلسلة ورسالة) {
الأمراض المنقولة جنسيا:: كوت < < رسالة < < الأمراض المنقولة جنسيا:: إندل;
}
باطلة كالويثفونكتيون(كونست ستد::وظيفة وظيفة ، كونست الأمراض المنقولة جنسيا:: سلسلة ورسالة) {
وظيفة (رسالة);
}
كثافة العمليات الرئيسية () {
الأمراض المنقولة جنسيا:: رسالة سلسلة = " مرحبا ، العالم!";
استدعاء وظيفة (برينتمسيج ، رسالة);
العودة 0;
}
مرت كحجة ويطبع الرسالة المرسلة.
المثال 2: Возвращение функции
#include
#include
std::function getAdditionFunction() {
return [](int a, int b) {
return a + b;
};
}
int main() {
std::function addition = getAdditionFunction();
int result = addition(2, 3);
std::cout << "Result: " << result << std::endl;
return 0;
}
и вызывается с двумя аргументами.
- 3: - الأمراض المنقولة جنسيا::وظيفة
# تشمل
# تشمل
# تشمل
# تشمل
رقم الطباعة الفارغ (رقم الباحث) {
الأمراض المنقولة جنسيا:: كوت < < عدد<<"";
}
كثافة العمليات الرئيسية () {
الأمراض المنقولة جنسيا:: أرقام ناقلات= {1, 2, 3, 4, 5};
الأمراض المنقولة جنسيا:: وظيفة برينتفونكتيون = برينتنومبر;
الأمراض المنقولة جنسيا:: لكل (أرقام.تبدأ (), أعداد.النهاية () ، وظيفة الطباعة);
العودة 0;
}
.
Пример 4: Хранение различных типов функций в контейнере
# تشمل # تشمل
# تشمل
فواد برينتمسيج (كونست ستد::سلسلة ورسالة) {
الأمراض المنقولة جنسيا:: كوت < < رسالة < < الأمراض المنقولة جنسيا:: إندل;
}
رقم الطباعة الفارغ (رقم الباحث) {
الأمراض المنقولة جنسيا:: كوت < < عدد < < الأمراض المنقولة جنسيا:: إندل;
}
كثافة العمليات الرئيسية () {
الأمراض المنقولة جنسيا::ناقلات الأمراض
الأمراض المنقولة جنسيا::وظيفة فون1 = [] () {
برينتمساج ("مرحبا ، العالم!");
};
الأمراض المنقولة جنسيا:: وظيفة وظيفة2 = [] () {
رقم الطباعة (42);
};
وظائف.دفع الظهر (وظيفة 1);
وظائف.دفع الظهر (وظيفة2);
ل (كونست السيارات وظيفة : وظائف) {
وظيفة();
}
العودة 0;
}
. ثم يتم استدعاء كل وظيفة في حلقة.
الأمراض المنقولة جنسيا::توفر وظيفة قدرات قوية للعمل مع وظائف ككائنات ، والتي يمكن أن تكون مفيدة في العديد من سيناريوهات البرمجة ج programming.
سؤال وجواب
ما هو الأمراض المنقولة جنسيا::وظيفة?
الأمراض المنقولة جنسيا:: وظيفة هي فئة قالب في ج that التي تمثل السلوك الوظيفي متعدد الأشكال. يتم استخدامه لتخزين أنواع مختلفة من الوظائف وتمريرها واستدعائها ، بما في ذلك وظائف أعضاء الفصل والوظائف الكاري والوظائف مع عدد تعسفي من الوسائط.
كيفية استخدام الأمراض المنقولة جنسيا:: وظيفة?
لاستخدام ستد:: وظيفة ، يجب أن تعلن متغير تحديد نوع الوظيفة التي سيتم تخزينها. يمكنك بعد ذلك تعيين وظيفة لهذا المتغير باستخدام منشئ أو عامل تعيين. يتم استخدام () المشغل لاستدعاء وظيفة المخزنة في الأمراض المنقولة جنسيا:: وظيفة. لتمرير ستد:: وظيفة كوسيطة إلى وظيفة ، يجب أن تعلن هذه الوظيفة مع معلمة من نوع ستد:: وظيفة.
هل من الممكن استخدام الأمراض المنقولة جنسيا::وظيفة لتخزين وظائف عضو الطبقة?
نعم ، الأمراض المنقولة جنسيا:: وظيفة يمكن تخزين واستدعاء وظائف الأعضاء من فئة. للقيام بذلك ، حدد نوع وظيفة العضو بدلا من نوع الوظيفة المعتاد. عند استدعاء وظيفة عضو عبر ستد:: وظيفة ، تحتاج إلى تمرير الكائن الذي سيتم استدعاء وظيفة عضو.
كيفية استخدام الأمراض المنقولة جنسيا::وظيفة لتخزين وظائف مع الكاري?
لتخزين وظائف مع الكاري في ستد:: وظيفة ، تحتاج إلى تحديد نوع الوظيفة باستخدام فونكتور الكائن الذي الزائد المشغل (). بدلا من قيمة المعلمة ، تحتاج إلى تحديد نوعها. عند استدعاء وظيفة عبر الأمراض المنقولة جنسيا::تحتاج الدالة إلى تمرير قيم المعلمات كوسيطات إلى عامل التشغيل ().
هل من الممكن استخدام الأمراض المنقولة جنسيا:: وظيفة لتخزين وظائف مع عدد التعسفي من الحجج?
نعم ، ستد:: وظيفة يمكن تخزين واستدعاء وظائف مع عدد التعسفي من الحجج. للقيام بذلك ، تحتاج إلى استخدام معلمات كعب بدلا من أنواع المعلمات الفعلية عند تحديد نوع الوظيفة. عند استدعاء وظيفة عبر ستد:: وظيفة ، تحتاج إلى تمرير قيم الوسيطة كوسيطات إلى عامل التشغيل ().
هل من الممكن استخدام الأمراض المنقولة جنسيا:: وظيفة كقيمة إرجاع وظيفة?
نعم ، يمكنك استخدام الأمراض المنقولة جنسيا::وظيفة كقيمة الإرجاع للدالة. عند إعلان وتحديد وظيفة ، تحتاج إلى تحديد نوع قيمة الإرجاع كما ستد::وظيفة وتمرير نوع الوظيفة التي ستعود وظيفة كمعلمة من ستد:: قالب وظيفة. ثم تحتاج إلى العودة الأمراض المنقولة جنسيا:: كائن وظيفة تحتوي على الوظيفة المطلوبة.