এখানে আমরা দেখব কিভাবে একটি নির্দিষ্ট ক্লাস থেকে কতগুলো অবজেক্ট তৈরি হয়েছে তা কিছু স্ট্যাটিক মেম্বার ফাংশন ব্যবহার করে গिना যায়। স্ট্যাটিক মেম্বাররা ক্লাস প্রপার্টি, অবজেক্ট প্রপার্টি নয়। একটি ক্লাসের জন্য স্ট্যাটিক মেম্বারের শুধু একটি ইনস্ট্যান্স থাকবে। প্রতিটি অবজেক্টের জন্য নতুন মেম্বার তৈরি হয় না।
এই সমস্যায় আমরা একটি স্ট্যাটিক কাউন্টার ভেরিয়েবল ব্যবহার করছি অবজেক্টের সংখ্যা ট্র্যাক রাখতে, তারপর স্ট্যাটিক মেম্বার ফাংশন থাকবে কাউন্ট ভ্যালু ডিসপ্লে করার জন্য।
যখন একটি নতুন অবজেক্ট তৈরি হয়, তখন কনস্ট্রাক্টর কল হবে। কনস্ট্রাক্টরের ভিতরে কাউন্ট ভ্যালু বাড়ানো হয়। এইভাবে আউটপুট পাওয়া যায়।
উদাহরণ
#include <iostream>
using namespace std;
class My_Class {
private:
static int count;
public:
My_Class() { // কনস্ট্রাক্টরে কাউন্ট ভ্যালু বাড়ান
cout << "Calling Constructor" << endl;
count++;
}
static int objCount() {
return count;
}
};
int My_Class::count;
main() {
My_Class my_obj1, my_obj2, my_obj3;
int cnt;
cnt = My_Class::objCount();
cout << "Number of objects:" << cnt;
}
আউটপুট
Calling Constructor Calling Constructor Calling Constructor Number of objects:3