যদি আপনি একজন প্রোগ্রামার হন, আপনি কোড লিখেন; যদি কোড লিখেন, ফাংশন ব্যবহার করেন; যদি ফাংশন ব্যবহার করেন, প্রতিটি ফাংশনে রিটার্ন এবং এক্সিট স্টেটমেন্ট ব্যবহার করেন। তাই এই আর্টিকেলে, আমরা আলোচনা করব রিটার্ন স্টেটমেন্ট এবং এক্সিট স্টেটমেন্ট কী এবং তাদের পার্থক্য।
C++-এ,
- return হল একটি স্টেটমেন্ট যা এক্সিকিউশনের ফ্লো কন্ট্রোল কলিং ফাংশনে ফেরত দেয়।
- Exit স্টেটমেন্ট প্রোগ্রামটিকে সেটি যেখানে ব্যবহার হয়েছে সেখানে টার্মিনেট করে।
int main()
এই হলো প্রোগ্রাম এক্সিকিউশন শুরু হওয়ার জায়গা। প্রোগ্রামটি main() ফাংশন থেকে এক্সিকিউট হয়, এবং যেহেতু রিটার্ন টাইপে int আছে, এটিকে অবশ্যই কিছু ইন্টিজার মান রিটার্ন করতে হবে। আমরা বলতে পারি এই ইন্টিজারটি প্রোগ্রামের স্ট্যাটাস রিপ্রেজেন্ট করে, যেখানে ০ মানে প্রোগ্রাম সফলভাবে এক্সিকিউট হয়েছে। নন-জিরো মান মানে কোডে এক্সিকিউশন এরর আছে।
মেইন ফাংশনে রিটার্ন স্টেটমেন্ট
একটি রিটার্ন স্টেটমেন্ট সর্বদা এক্সিকিউশন ফ্লোর কন্ট্রোল কলিং ফাংশনে ফেরত দেয়। রিটার্ন এক্সিট কোড ব্যবহার করে যা ইন্ট ভ্যালু, কলিং ফাংশনে রিটার্ন করে। মেইন ফাংশনে রিটার্ন স্টেটমেন্ট ব্যবহার করা মানে প্রোগ্রাম থেকে একটি স্ট্যাটাস কোড দিয়ে এক্সিট করা; উদাহরণস্বরূপ, return 0 মানে অপারেটিং সিস্টেমকে স্ট্যাটাস কোড ০ রিটার্ন করা। একটি C++ প্রোগ্রাম দেখি যেটি রিটার্ন স্টেটমেন্ট ব্যবহার করে।
উদাহরণ
#include <iostream>
using namespace std;
class Test {
public:
// কনস্ট্রাক্টর এক্টিভেট করার জন্য
Test() {
cout << "Hey this is Return Constructor \n";
}
// ডিস্ট্রাক্টর এক্টিভেট করার জন্য
~Test() {
cout << "Hey this is return Destructor";
}
};
int main() {
// Test ক্লাসের অবজেক্ট তৈরি
Test object;
// মেইনে রিটার্ন ব্যবহার
return 0;
}
আউটপুট
Hey this is Return Constructor Hey this is return Destructor
উপরোক্ত প্রোগ্রাম দেখে আমরা বলতে পারি যে রিটার্ন ক্লাস অবজেক্টের কনস্ট্রাক্টর এবং ডিস্ট্রাক্টর কল করে। ডিস্ট্রাক্টর কল করা অ্যালোকেটেড মেমরি রিলিজ করার জন্য অপরিহার্য।
মেইন ফাংশনে Exit() স্টেটমেন্ট
Exit() স্টেটমেন্ট প্রোগ্রামটিকে সেটি যেখানে ব্যবহার হয়েছে সেখানে টার্মিনেট করে। যখন এক্সিট কিওয়ার্ড মেইন ফাংশনে ব্যবহার হয়, এটি প্রোগ্রাম থেকে লোকালি স্কোপড অবজেক্টের জন্য ডিস্ট্রাক্টর কল না করেই এক্সিট করবে। যেকোনো তৈরি করা অবজেক্ট ডিস্ট্রয় হবে না এবং মেমরি রিলিজ করবে না; এটি শুধু প্রোগ্রাম টার্মিনেট করবে।
উদাহরণ
#include <iostream>
using namespace std;
class Test {
public:
// কনস্ট্রাক্টর এক্টিভেট করার জন্য
Test() {
cout << "Hey this is exit Constructor \n";
}
// ডিস্ট্রাক্টর এক্টিভেট করার জন্য
~Test() {
cout << "Hey this is exit Destructor";
}
};
int main() {
// Test ক্লাসের অবজেক্ট তৈরি
Test object;
// মেইনে exit() ব্যবহার
exit(0);
}
আউটপুট
Hey this is exit Constructor
প্রোগ্রামের আউটপুট দেখে আমরা উপসংহার করতে পারি যে আমাদের প্রোগ্রামে exit কিওয়ার্ড ব্যবহার করা মানে এটি ডিস্ট্রাক্টর কল করবে না অ্যালোকেটেড মেমরি ডিস্ট্রয় করতে এবং লোকালি স্কোপড অবজেক্টগুলো।
উপসংহার
এই আর্টিকেলে, আমরা রিটার্ন স্টেটমেন্ট এবং এক্সিট স্টেটমেন্টের পার্থক্য বুঝেছি। পার্থক্য থেকে আমরা উপসংহার করতে পারি যে প্রোগ্রামে সেগুলো ব্যবহার করলে অনেক পার্থক্য হয়। exit, return-এর চেয়ে ব্যবহার করলে সতর্কতা দরকার। যাইহোক, এক পেজ কোডে সেগুলো বেশি প্রভাব ফেলে না কিন্তু সফটওয়্যার ডেভেলপমেন্টের সময় এটা বড় প্রভাব ফেলে। আশা করি আপনি এই আর্টিকেলটিকে সহায়ক খুঁজে পাবেন।