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

C++-এ static কীওয়ার্ড এবং এর বিভিন্ন ব্যবহার


static কীওয়ার্ড ব্যবহার করলে, ভেরিয়েবল বা ডাটা মেম্বার বা ফাংশন আবার মডিফাই করা যায়না। এটি প্রোগ্রামের লাইফটাইমের জন্য aloket হয়। Static ফাংশন ক্লাসের নাম ব্যবহার করে সরাসরি কল করা যায়।

Static ভেরিয়েবল শুধু একবার ইনিশিয়ালাইজ হয়। কম্পাইলার ভেরিয়েবলটি প্রোগ্রামের শেষ পর্যন্ত সংরক্ষণ করে। Static ভেরিয়েবল ফাংশনের ভিতর বা বাইরে ডিফাইন করা যায়। সেগুলো ব্লকে লোকাল। Static ভেরিয়েবলের ডিফল্ট মান শূন্য। Static ভেরিয়েবল প্রোগ্রাম এক্সিকিউশন পর্যন্ত জীবিত থাকে।

C++-এ static কীওয়ার্ডের সিনট্যাক্স নিচে দেওয়া হল।

static datatype variable_name = value; // Static variable
static return_type function_name { // Static functions
    ...
}

এখানে,

datatype − ভেরিয়েবলের ডাটা টাইপ seperti int, char, float ইত্যাদি।

variable_name − ইউজার দেওয়া ভেরিয়েবলের নাম।

value − ভেরিয়েবল ইনিশিয়ালাইজ করার যেকোনো মান। ডিফল্টভাবে এটি শূন্য।

return_type − ফাংশনের ডাটা টাইপ যা মান ফেরত দেয়।

function_name − ফাংশনের যেকোনো নাম।

C++-এ static কীওয়ার্ডের একটি উদাহরণ নিচে দেওয়া হল।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

class Base {
public:
    static int val;
    static int func(int a) {
        cout << "\nStatic member function is called";
        cout << "\nThe value of a : " << a;
    }
};

int Base::val = 28;

int main() {
    Base b;
    Base::func(8);
    cout << "\nThe static variable value : " << b.val;
    return 0;
}

আউটপুট

Static member function is called
The value of a : 8
The static variable value : 28

উপরের প্রোগ্রামে, একটি static ভেরিয়েবল ডিক্লেয়ার করা হয়েছে এবং Base ক্লাসে একটি static ফাংশন ডিফাইন করা হয়েছে নিচের মতো -

public:
    static int val;
    static int func(int a) {
        cout << "\nStatic member function called";
        cout << "\nThe value of a : " << a;
    }

ক্লাসের পর এবং main()-এর আগে, static ভেরিয়েবলটি নিচের মতো ইনিশিয়ালাইজ করা হয়েছে।

int Base::val=28;

main() ফাংশনে, Base ক্লাসের অবজেক্ট তৈরি করা হয়েছে এবং static ভেরিয়েবল কল করা হয়েছে। Static ফাংশনটিও Base ক্লাসের অবজেক্ট ছাড়া কল করা হয়েছে।

Base b; Base::func(8); cout << "\nThe static variable value : " << b.val;

  1. C++-এ volatile কিওয়ার্ডের অর্থ

  2. কি C++ ভেরিয়েবল একসাথে const এবং volatile হতে পারে?

  3. C++-এ #define এবং const কিওয়ার্ডের পার্থক্য

  4. C++-এ const কিওয়ার্ড কী?