اشاره گر به تابع در سی پلاس پلاس
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آموزش اشاره گر به تابع در سی پلاس پلاس:
در این جلسه می خواهیم مبحث اشاره گرها به تابع را در زبان ++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;
}
خروجی:
دوست درسمنی عزیز، امیدواریم از این آموزش لذت برده باشید.
برای یادگیری این مبحث میتوانید این درس را تهیه کنید و از فایلها و ویدئو این بخش استفاده کنید.
شما عزیزان میتوانید سوالات خود را در بخش انجمن پرسش و پاسخ مطرح کنید و همچنین منتظر انتقادات و پیشنهادات مفید شما در بخش نظرات هستیم تا ما را در کیفیت بهتر آموزشهایمان یاری کنید.
با امید موفقیت و شادی برای شما دوست درسمنی عزیز
انجمن ++C کاران درسمن
نظرات دانشجویان
سلام بسیار ساده و روان توضیح داده شده است ممنون
ممنون از درج نظرتان، ما روی کیفیت دوره ها خیلی تمرکز داریم زیرا شما عزیزان لایق بهترین ها هستید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.