কিভাবে C++ এ ফাংশন পয়েন্টার ব্যবহার করবেন

Kibhabe C E Phansana Payentara Byabahara Karabena



C++ এ, ফাংশন পয়েন্টার ডেটা হিসাবে ফাংশন ম্যানিপুলেট করার জন্য একটি শক্তিশালী টুল অফার করে। ক ফাংশন পয়েন্টার একটি ভেরিয়েবল যা একটি ফাংশনের মেমরি ঠিকানা ধারণ করে। এটি একটি স্ট্যান্ডার্ড পয়েন্টারের অনুরূপভাবে কাজ করে তবে এটি একটি ডেটা অবজেক্টের ঠিকানার পরিবর্তে একটি ফাংশনের ঠিকানা সংরক্ষণ করে। এটা মনে রাখা গুরুত্বপূর্ণ ফাংশন পয়েন্টার C++-এ কেবল অন্য ধরনের ভেরিয়েবল, এবং সেগুলিকে অবশ্যই অন্যান্য ভেরিয়েবলের মতোই ঘোষণা ও শুরু করতে হবে।

একটি ফাংশন পয়েন্টার সংজ্ঞায়িত করা

সিনট্যাক্স একটি ঘোষণা করার জন্য ফাংশন পয়েন্টার নিম্নরূপ:







রিটার্ন_টাইপ ( * func_ptr_name ) ( প্যারামিটার_তালিকা ) ;



এখানে, func_ptr_name এর নাম ফাংশন পয়েন্টার , রিটার্ন_টাইপ ফাংশনের রিটার্ন প্রকার, এবং প্যারামিটার_তালিকা ফাংশনটি যে পরামিতিগুলি নেয় তার তালিকা।



C++ এ একটি ফাংশন পয়েন্টার ব্যবহার করার জন্য এখানে একটি কোড উদাহরণ রয়েছে।





#include
#অন্তর্ভুক্ত করুন
নামস্থান std ব্যবহার করে;

অকার্যকর ঘনক ( int x )
{
cout << 'একটি সংখ্যার ঘনক হল' << এক্স * এক্স * এক্স << endl;
}

int প্রধান ( )
{
অকার্যকর ( * funPtr ) ( int ) ;
funPtr = এবং ঘনক;
funPtr ( 5 ) ;
প্রত্যাবর্তন 0 ;
}

উপরের কোডে, the ফাংশন পয়েন্টার বাতিল ঘোষণা করা হয় (*funPtr)(int) , এবং এটি কিউব() ফাংশনের ঠিকানা সংরক্ষণ করে আরম্ভ করা হয় funPtr , অর্থ যে funPtr ফাংশন নির্দেশ করে ঘনক () . সুতরাং, আমরা funPtr ব্যবহার করে কিউব ফাংশনকে কল করতে পারি ( ফাংশন পয়েন্টার ) কোডের মত funPtr (5)।



আউটপুট

ফাংশন পয়েন্টার , অন্যান্য পয়েন্টারের বিপরীতে, ডেটার পরিবর্তে কোডের দিকে নির্দেশ করে। ক ফাংশন পয়েন্টার প্রায়শই এক্সিকিউটেবল কোডের শুরুতে সঞ্চয় করে। স্ট্যান্ডার্ড পয়েন্টার থেকে ভিন্ন, আমরা ব্যবহার করি না ফাংশন পয়েন্টার মেমরি বরাদ্দ বা খালি করতে। যেমনটি আমরা উপরের প্রোগ্রামে দেখেছি, একটি ফাংশনের নাম ব্যবহার করে এর অবস্থান নির্ধারণ করাও সম্ভব। সাধারণ পয়েন্টারগুলিতে প্রযোজ্য একই নিয়মগুলি একটি অ্যারের ক্ষেত্রেও প্রযোজ্য ফাংশন পয়েন্টার . সুইচ কেসের জায়গায় ফাংশন পয়েন্টার ব্যবহার করা যেতে পারে। ক ফাংশন পয়েন্টার একটি যুক্তি হিসাবে সরবরাহ করা যেতে পারে এবং একটি ফাংশন থেকে ফিরে আসতে পারে, ঠিক যেমন একটি ডেটা পয়েন্টার করতে পারে।

ফাংশন পয়েন্টার এর সুবিধা

এর প্রধান সুবিধা ফাংশন পয়েন্টার নীচে তালিকাভুক্ত করা হয়.

1: কোডের পুনরায় ব্যবহারযোগ্যতা

ব্যবহারের মূল সুবিধাগুলির মধ্যে একটি ফাংশন পয়েন্টার তারা কোডে পুনরায় ব্যবহারযোগ্যতার অনুমতি দেয়। প্রতিটি পরিস্থিতিতে অনন্য ফাংশন লেখার পরিবর্তে, আপনি এমন ফাংশনগুলি ডিজাইন করতে পারেন যা একটি সংজ্ঞায়িত করে বিভিন্ন ধরণের ইনপুট ডেটা মোকাবেলা করার জন্য যথেষ্ট সাধারণ। ফাংশন পয়েন্টার আপনার কোড জুড়ে এটি ধারাবাহিকভাবে টাইপ করুন এবং ব্যবহার করুন। পরিবর্তে, আপনাকে যা করতে হবে তা হল অধিকার প্রদান ফাংশন পয়েন্টার রানটাইমে বা একটি কনফিগারেশন ফাইলের মাধ্যমে, এবং ফাংশনটি বর্তমান কাজের চাহিদার সাথে সামঞ্জস্য করবে। এটি শুধুমাত্র উন্নয়ন প্রক্রিয়ার গতি বাড়ায় না বরং আপনার কোডের মডুলারিটি এবং দীর্ঘমেয়াদী রক্ষণাবেক্ষণযোগ্যতাও উন্নত করে।

2: গতিশীল রানটাইম আচরণ

গতিশীল রানটাইম আচরণ বাস্তবায়ন করার ক্ষমতা ব্যবহারের আরেকটি সুবিধা ফাংশন পয়েন্টার . উদাহরণস্বরূপ, আপনার একটি ফাংশন থাকতে পারে যা একটি নির্দিষ্ট গণনা চালায়, তবে সেই গণনাটি সম্পাদন করতে ব্যবহৃত সঠিক অ্যালগরিদম ব্যবহারকারীর ইনপুট বা সিস্টেমের অবস্থার উপর নির্ভর করবে। সঞ্চয় করে a ফাংশন পয়েন্টার যেটি প্রতিটি সম্ভাব্য অ্যালগরিদমের সাথে মিলে যায়, আপনি if-else স্টেটমেন্ট বা অন্যান্য শর্তযুক্ত যুক্তি ব্যবহার করে রানটাইমে উপযুক্ত একটি নির্বাচন করতে পারেন। এটি করার মাধ্যমে, আপনি অত্যন্ত নমনীয় কোড বিকাশ করতে পারেন যা একটি সম্পূর্ণ প্রোগ্রাম পুনর্নির্মাণের প্রয়োজন ছাড়াই পরিবর্তিত অবস্থার প্রতিক্রিয়া জানাতে পারে।

3: নমনীয়তা

C++ এ, ফাংশন পয়েন্টার নমনীয়, জেনেরিক কোড তৈরি করার জন্য একটি শক্তিশালী টুল অফার করুন। ফাংশন পয়েন্টার মূলত ভেরিয়েবল যা একটি ফাংশনের মেমরি অবস্থানের ঠিকানা ধরে রাখে। তারা ফাংশনগুলিকে অ্যারে বা তালিকার মতো ডেটা স্ট্রাকচারে সংরক্ষণ করতে সক্ষম করে, অন্যান্য ফাংশনে আর্গুমেন্ট হিসাবে সরবরাহ করা হয় এবং এমনকি রানটাইম পরিস্থিতি বা ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে কার্যকর করার জন্য গতিশীলভাবে সঠিক ফাংশন বেছে নিতে ব্যবহৃত হয়।

উপসংহার

ফাংশন পয়েন্টার C++ এ কার্যকরী যা গতিশীল রানটাইম আচরণ এবং কোড পুনঃব্যবহার সমর্থন করে। আপনি অত্যন্ত নমনীয় এবং অভিযোজিত কোড লিখতে পারেন যা ভেরিয়েবলগুলিতে ফাংশনের ঠিকানাগুলি সংরক্ষণ করে সময়ের সাথে সাথে পরিবর্তনের প্রয়োজনীয়তার সাথে সামঞ্জস্য করতে পারে। ফাংশন পয়েন্টার প্রতিটি পেশাদার C++ কোডারের জন্য প্রয়োজনীয়, যদিও তাদের শেখার জন্য কিছু কাজের প্রয়োজন হতে পারে।