এক ফাংশনের ভেতরে ঘোষণা করা ক্লাসকে C++-তে লোকাল ক্লাস বলা হয় কারণ এটি সে ফাংশনের জন্য লোকাল।
একটি লোকাল ক্লাসের উদাহরণ নিচে দেওয়া হলো:
#include <iostream>
using namespace std;
void func() {
class LocalClass {
};
}
int main() {
return 0;
}
উপরোক্ত উদাহরণে, func() একটি ফাংশন এবং LocalClass ক্লাসটি ফাংশনের ভেতরে সংজ্ঞায়িত করা হয়েছে। তাই এটি লোকাল ক্লাস নামে পরিচিত।
এক লোকাল ক্লাসের নাম শুধু তার ফাংশনে ব্যবহার করা যায়, বাইরে নয়। এছাড়া, লোকাল ক্লাসের মেথডগুলোকে অবশ্যই তার ভেতরে সংজ্ঞায়িত করতে হয়। একটি লোকাল ক্লাসে স্ট্যাটিক ডেটা মেম্বার থাকতে পারে না কিন্তু স্ট্যাটিক ফাংশন থাকতে পারে।
C++-তে লোকাল ক্লাস প্রদর্শন করে এমন একটি প্রোগ্রাম নিচে দেওয়া হলো:
উদাহরণ
#include <iostream>
using namespace std;
void func() {
class LocalClass {
private:
int num;
public:
void getdata(int n) {
num = n;
}
void putdata() {
cout << "The number is " << num;
}
};
LocalClass obj;
obj.getdata(7);
obj.putdata();
}
int main() {
cout << "Demonstration of a local class" << endl;
func();
return 0;
}
আউটপুট
Demonstration of a local class The number is 7
উপরোক্ত প্রোগ্রামে, LocalClass ক্লাসটি func() ফাংশনে ঘোষণা করা হয়েছে তাই এটি একটি লোকাল ক্লাস। ক্লাসে একটি ভেরিয়েবল num এবং দুটি মেম্বার ফাংশন রয়েছে যা num ইনিশিয়ালাইজ এবং প্রদর্শন করে। ক্লাস তৈরির পর, এর অবজেক্ট obj ফাংশন func()-এ সংজ্ঞায়িত করা হয়েছে এবং getdata() ও putdata() obj ব্যবহার করে কল করা হয়েছে। এটি নিচে দেখা যাচ্ছে:
void func() {
class LocalClass {
private:
int num;
public:
void getdata(int n) {
num = n;
}
void putdata() {
cout << "The number is " << num;
}
};
LocalClass obj;
obj.getdata(7);
obj.putdata();
}
main() ফাংশনে, func() ফাংশনটি কল করা হয়েছে। এটি নিচে দেখানো হলো:
cout << "Demonstration of a local class" << endl; func();