কম্পিউটার টিউটোরিয়াল

C++-এ স্ট্যাটিক মেম্বার ডিফাইন করা


C++-এ একটি ক্লাসে স্ট্যাটিক মেম্বার static কীওয়ার্ড ব্যবহার করে ডিফাইন করা যায়। মেমরিতে স্ট্যাটিক ক্লাস মেম্বারের শুধু একটি কপি থাকে, ক্লাসের অবজেক্টের সংখ্যা নির্বিশেষে। তাই স্ট্যাটিক মেম্বার সকল ক্লাস অবজেক্ট দ্বারা শেয়ার করা হয়।

যদি অন্য কোনোভাবে ইনিশিয়ালাইজ না করা হয়, তবে ক্লাসের প্রথম অবজেক্ট তৈরি হলে স্ট্যাটিক ক্লাস মেম্বার শূন্যে ইনিশিয়ালাইজ হয়।

স্ট্যাটিক ক্লাস মেম্বার ডিফাইন করা প্রদর্শন করে একটি প্রোগ্রাম নিচে দেওয়া হল -

উদাহরণ

#include <iostream>
using namespace std;

class Point {
    int x;
    int y;
public:
    static int count;
    Point(int x1, int y1) {
        x = x1;
        y = y1;
        count++;
    }
    void display() {
        cout << "The point is (" << x << "," << y << ")\n";
    }
};

int Point::count = 0;

int main(void) {
    Point p1(10, 5);
    Point p2(7, 9);
    Point p3(1, 2);
    p1.display();
    p2.display();
    p3.display();
    cout << "\nThe number of objects are: " << Point::count;
    return 0;
}

উপরোক্ত প্রোগ্রামের আউটপুট নিম্নরূপ -

The point is (10,5)
The point is (7,9)
The point is (1,2)
The number of objects are: 3

এখন আসুন উপরের প্রোগ্রামটি বুঝি।

Point ক্লাসের ২টি ডাটা মেম্বার আছে x এবং y যা একটি পয়েন্ট গঠন করে। এছাড়া একটি স্ট্যাটিক মেম্বার count আছে যা Point ক্লাসের অবজেক্ট সংখ্যা মনিটর করে। কনস্ট্রাক্টর Point() x এবং y-এর মান ইনিশিয়ালাইজ করে এবং display() ফাংশন তাদের মান প্রদর্শন করে। এটি দেখানোর কোড স্নিপেট নিচে দেওয়া হল -

class Point {
    int x;
    int y;
public:
    static int count;
    Point(int x1, int y1) {
        x = x1;
        y = y1;
        count++;
    }
    void display() {
        cout << "The point is (" << x << "," << y << ")\n";
    }
};

main() ফাংশনে, Point ক্লাসের ৩টি অবজেক্ট তৈরি করা হয়েছে। তারপর display() ফাংশন কল করে এই অবজেক্টগুলোর মান প্রদর্শন করা হয়েছে। তারপর count-এর মান প্রদর্শন করা হয়েছে। এটি দেখানোর কোড স্নিপেট নিচে দেওয়া হল -

Point p1(10,5); Point p2(7,9); Point p3(1,2); p1.display(); p2.display(); p3.display(); cout << "\nThe number of objects are: " << Point::count;

  1. C++-এ স্ট্যাটিক ডেটা মেম্বার

  2. C++-এ লোকাল ক্লাস

  3. C++-এ static স্টোরেজ ক্লাস

  4. C#-এ ক্লাসের স্ট্যাটিক মেম্বার (Static Members) কী?