עבור לתוכן

בקשר לפונקציות בC++

Featured Replies

פורסם

איך אפשר להעביר פונקציה כפרמטר

פורסם

תשנה את הכותרת של הדיון ככה שהיא תכיל את הנושא של הדיון (ותקרא את חוקי הפורום אם עוד לא עשית את זה)

על איזו שפה מדובר?

פורסם

אוף, רציתי לתת לו תשובה בשפה כמו ML ולחכות שישאל "מה?". למה אתה חייב להיות נחמד כל הזמן, McFly?!?

פורסם
  • מחבר

עכשיו בבקשה אתם יכולים לענות

פורסם

האתר ההוא בגדול נכון אבל מכיל כל מני אי דיוקים וגם מערבב נושאים פחות רלוונטיים בשבילך.

ב-C ו-C++ עבור פונקציות רגילות:


typedef double (*func_ptr_t) ( int, int );

double func1( int a, int b);
double func2( int a, int b);

void receive_func( func_ptr_t f, int x, int y )
{
// ...
double ret = f( x, y);
// ...
}

אם הפוקנציה שאתה רוצה להעביר פוינטר היא מתודה של מחלקה ולא סתם פונקציה, ראה כאן:

http://www.parashift.com/c++-faq-lite/pointers-to-members.html

פורסם
  • מחבר

אם הפונקציה לא מחזירה פרמטר אז אפשר פשוט לקרוא לה ככה

f(x,y)

פורסם

א) כן, כמובן. למעשה אתה יכול לקרוא לה ככה תמיד ולהתעלם מערך החזרה שלה.

ב) אל תשכח נקודה-פסיק ;

ג) אם הפונקציות לא מחזירו כלום אז מראש תשנה את הטיפוס של func_ptr_t ואת חתימת הפונקציות כדי ש"יחזירו" void.

ד) פונקציות לא מחזירות פרמטרים, הם מקבלות פרמטרים ומחזירות ערכים.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים