اشاره گر به تابع در سی پلاس پلاس


اشاره گر به تابع در سی پلاس پلاس
برای خرید این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

آموزش اشاره گر به تابع در سی پلاس پلاس:


در این جلسه می خواهیم مبحث اشاره گر‌ها به تابع را در زبان ++C توضیح دهیم. ممکن است در یک برنامه نیاز داشته باشیم که به توابع اشاره کنیم. با استفاده از اشاره گرها می‌توانیم به صورت همزمان به چندین تابع دسترسی داشته باشیم. در جلسات  قبل توابع و انواع فراخوانی آن را توضیح دادیم. اشاره گرها به خانه های حافظه دسترسی دارند و می‌توانند روی این خانه‌ها حرکت کنند. اسم آرایه‌ها آدرس اولین خانه هستند و اسم توابع، آدرس تابع می باشد. می توانید با تعریف اشاره گری به آن آدرس‌ها متصل شوید. در این آموزش خواهیم گفت که چگونه می‌توانید اشاره گرها را به توابع متصل کنید. برای درک بهتر این مبحث به مثال‌های زیر توجه کنید:

مثال: در این برنامه یک تابع با نام sum تعریف کرده‌ایم که وظیفه آن جمع دو عدد می‌باشد. سپس یک اشاره گر با نام p تعریف کرده‌ایم. اسم توابع شبیه آرایه‌ها حاوی آدرس تابع است. نوع اشاره گر به نوع خروجی تابع بستگی دارد. در این برنامه نوع خروجی تابع int می‌باشد، پس اشاره گری از نوع int تعریف کرده‌ایم. البته برای توابعی که خروجی void دارند، نوع اشاره گر را می‌توانیم void یا از جنس int تعریف کنیم. داخل پرانتز جلوی اشاره گر نوع داده‌های تابع را بدون نام متغیری قرار داده‌ایم و همچنین باید نام اشاره گر هم داخل پرانتز باشد.

 

int sum (int num1,int num2)
 {
      return num1+num2;
}

int main()
{
     int (*p)(int,int);
     p=sum;
     cout<<p(24,56);
getch();
return 0;
}


مثال: در این برنامه 3 تابع تعریف کرده‌ایم که عملیات جمع، تفریق و ضرب را انجام می‌دهند. برای اتصال اشاره‌ گر به این 3 تابع، آرایه‌ای از اشاره گر را تعریف می‌کنیم، که دارای 3 خانه می‌باشد. که هر خانه آن به یک تابع متصل می‌شود. خانه 0 به تابع sum، خانه 1 به تابع sub و خانه 2 به تابع mul متصل شده است. در این مثال fun[1] به تابع sub اشاره می‌کند و عملیات تفریق را به روی مقادیر وارد شده انجام می‌دهد. همچنین می‌توانید زمانی که آرایه‌ایی از اشاره گرها را به یک سری از تابع‌ها متصل کردید، از یک for استفاده کنید.

 


int sum (int num1,int num2)
 {
      return num1+num2;
}

int sub (int num1,int num2)
 {
      return num1-num2;
}

int mul (int num1,int num2)
 {
      return num1*num2;
}

int main()
{
     int (*fun[3])(int,int)={sum,sub,mul};
     cout<<fun[1](200,50);
    
getch();
return 0;
}

 


با استفاده ازfor، سه تابع اجرا می شوند.
 

int main()
{
     int (*fun[3])(int,int)={sum,sub,mul};
      for(int I,i<3,i++)
       {
               cout<<fun[i](200,50);

        }   
getch();
return 0;
}


خروجی:

 

خروجی 1

 

دوست درسمنی عزیز، امیدواریم از این آموزش لذت برده باشید.
برای یادگیری این مبحث می‌توانید این درس را تهیه کنید و از فایل‌ها و ویدئو این بخش استفاده کنید.
شما عزیزان می‌توانید سوالات خود را در بخش انجمن پرسش و پاسخ مطرح کنید و همچنین منتظر انتقادات و پیشنهادات مفید شما در بخش نظرات هستیم تا ما را در کیفیت بهتر آموزش‌هایمان یاری کنید.


با امید موفقیت و شادی برای شما دوست درسمنی عزیزsmiley

انجمن ++C کاران درسمن

 


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات 16 جلسه
مدت زمان 621 دقیقه
حجم دوره 2/39 گیگابایت
سطح مهارت پیشرفته
وضعیت دوره پایان یافته
تعداد دانشجویان 134
: میانگین امتیاز

70,000تومان
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی
مهدی عباسی

درباره مدرس :

مدیر‌ عامل‌ شرکت آریا‌ نرم‌‌ افزار دارنده مدرک کارشناسی‌ ارشد مهندسی کامپیوتر 12‌ سال سابقه تدریس دروس کامپیوتر را در دانشگاههای دولتی، آزاد، پیام‌نور ملایر، شهیدشمسی‌پور تهران و تدریس برنامه‌نویسی در ... ر انیستیتو ایزایران، مجتمع فنی و موسسه راه‌آینده تهران دارا میباشد و تا به حال راهنمایی انجمنهای علمی دانشگاه و صدها پروژه دانشجویی را برعهده داشته است. تخصص اصلی: با داشتن گواهی‌نامه‌های معتبر تدریس از انیستیتو‌ ایزایران، راه آینده‌تهران و سازمان‌فنی‌حرفه‌ای، تدریس و آموزش‌ دروس کامپیوتر، ‌برنامه‌نویسی کامپیوتر و کلاسهای کنکور کارشناسی و کارشناسی‌ارشد میباشد.همچنین تجربه داوری و نظارت مسابقات برنامه‌نویسی کشوری‌ACM را در سالهای متعدد داشته و تیم مورد رهبری ایشان در 3سال متوالی مقام اول مسابقات کشوری را از آن خود کرده است.ایشان مقالاتی در زمینه شبکه‌های کامپیوتری، تکنیک‌های وزارت دفاع و ... به ثبت رسانده و مشاور و کارشناس در طراحی و برنامه نویسی بیش از 50‌برنامه کاربردی تحت وب و ویندوز و موبایل میباشد. افتخارات دیگر:کسب مقام دوم ایده‌های برتر در مسابقات استارت‌آپ و بکند کشوری را نام برد.بیشتر بدانید