কম্পিউটার

স্ট্যাটিক কীওয়ার্ড এবং C++ এ এর ​​বিভিন্ন ব্যবহার


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

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

স্ট্যাটিক কীওয়ার্ডের সিনট্যাক্স নিচে দেওয়া হল।

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

এখানে,

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

ভেরিয়েবল_নাম − এটি ব্যবহারকারীর দ্বারা প্রদত্ত ভেরিয়েবলের নাম৷

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

রিটার্ন_টাইপ − মান ফেরাতে ফাংশনের ডেটাটাইপ।

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

নিম্নলিখিতটি স্ট্যাটিক কীওয়ার্ডের একটি উদাহরণ।

উদাহরণ

#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

উপরের প্রোগ্রামে, একটি স্ট্যাটিক ভেরিয়েবল ঘোষণা করা হয়। একটি স্ট্যাটিক ফাংশন ক্লাস বেসে সংজ্ঞায়িত করা হয়েছে যেমন নীচে দেখানো হয়েছে −

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

ক্লাসের পরে এবং main() এর আগে, স্ট্যাটিক ভেরিয়েবলটি নিম্নরূপ শুরু হয়।

int Base::val=28;

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

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

  1. C++ এ উদ্বায়ী কীওয়ার্ডের অর্থ কী?

  2. একটি C++ ভেরিয়েবল কনস্ট এবং উদ্বায়ী উভয়ই হতে পারে?

  3. C++ এ #define এবং const কীওয়ার্ডের মধ্যে পার্থক্য কী?

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