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