কম্পিউটার

কেন C++ স্কোপ রেজোলিউশন অপারেটর প্রয়োজন?


::(স্কোপ রেজোলিউশন) অপারেটরটি পরিবর্তনশীল স্কোপের কারণে লুকানো নাম পেতে ব্যবহৃত হয় যাতে আপনি এখনও সেগুলি ব্যবহার করতে পারেন। স্কোপ রেজোলিউশন অপারেটর ইউনারী এবং বাইনারি উভয় হিসাবে ব্যবহার করা যেতে পারে।

আপনি unary স্কোপ অপারেটর ব্যবহার করতে পারেন যদি একটি নামস্থান স্কোপ বা গ্লোবাল স্কোপের নাম একটি ব্লক বা ক্লাসে একই নামের স্পষ্ট ঘোষণা দ্বারা লুকানো থাকে। উদাহরণস্বরূপ, যদি আপনার কাছে my_var নামের একটি গ্লোবাল ভেরিয়েবল এবং my_var নামের একটি স্থানীয় ভেরিয়েবল থাকে, তাহলে গ্লোবাল my_var অ্যাক্সেস করতে, আপনাকে স্কোপ রেজোলিউশন অপারেটর ব্যবহার করতে হবে। উদাহরণস্বরূপ,

উদাহরণ

নেমস্পেস std ব্যবহার করে
#include <iostream>  
using namespace std;  
int my_var = 0;
int main(void) {
   int my_var = 0;
   ::my_var = 1;  // set global my_var to 1
   my_var = 2;    // set local my_var to 2
   cout << ::my_var << ", " << my_var;
   return 0;
}

আউটপুট

এটি −

আউটপুট দেবে
1, 2

প্রধান ফাংশনে ঘোষিত my_var-এর ঘোষণা গ্লোবাল নেমস্পেস স্কোপে ঘোষিত my_var নামের পূর্ণসংখ্যাকে লুকিয়ে রাখে। বিবৃতি ::my_var =1 গ্লোবাল নেমস্পেস স্কোপে ঘোষিত my_var নামের ভেরিয়েবলটিকে অ্যাক্সেস করে।

এছাড়াও আপনি স্কোপ রেজোলিউশন অপারেটর ব্যবহার করতে পারেন ক্লাসের নাম বা ক্লাস সদস্যদের নাম ব্যবহার করতে। যদি কোনো শ্রেণীর সদস্যের নাম লুকানো থাকে, তাহলে আপনি এটিকে এর ক্লাসের নাম এবং ক্লাস স্কোপ অপারেটরের সাথে উপসর্গ দিয়ে ব্যবহার করতে পারেন। উদাহরণস্বরূপ,

উদাহরণ

#include <iostream>
using namespace std;
class X {
   public:
   static int count;
};
int X::count = 10;    // define static data member
int main () {
   int X = 0;       // hides class type X
   cout << X::count << endl;     // use static member of class X
}
এর স্ট্যাটিক সদস্য ব্যবহার করুন

আউটপুট

এটি −

আউটপুট দেবে
10

  1. কেন Windows 11 TPM 2.0 প্রয়োজন?

  2. C# এ স্কোপ রেজোলিউশন অপারেটর কি?

  3. কোথায় আমরা C# এ স্কোপ রেজোলিউশন অপারেটর (::) ব্যবহার করব?

  4. পাইথনে &=অপারেটর কি করে?