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

C++-এ স্কোপ রেজোলিউশন অপারেটর (::) বনাম this পয়েন্টার

এখানে আমরা কিছু C++ উদাহরণ দেখব এবং বুঝব কোন আউটপুট জেনারেট হবে। তারপর আমরা স্কোপ রেজোলিউশন অপারেটর এবং 'this' পয়েন্টারের উদ্দেশ্য ও কার্যকারিতা বুঝতে পারব।

যদি কোনো কোডে কিছু মেম্বার থাকে যেটি 'x', এবং আমরা একই নাম 'x' 가진 আর্গুমেন্ট নেওয়া অন্য একটি ফাংশন ব্যবহার করতে চাই, তবে সেই ফাংশনে যদি 'x' ব্যবহার করি, তবে এটি মেম্বার ভেরিয়েবলকে লুকিয়ে দেবে এবং লোকাল ভেরিয়েবলটি ব্যবহার হবে। একটা কোড দিয়ে চেক করি।

উদাহরণ কোড (লোকাল ভেরিয়েবল হাইডিং)

#include <iostream>
using namespace std;

class MyClass {
    private:
        int x;
    public:
        MyClass(int y) {
            x = y;
        }
        void myFunction(int x) {
            cout << "Value of x is: " << x;
        }
};

int main() {
    MyClass ob1(10);
    ob1.myFunction(40);
}

আউটপুট

Value of x is: 40

ক্লাসের x মেম্বার অ্যাক্সেস করতে হলে 'this' পয়েন্টার ব্যবহার করতে হবে। 'this' একটি বিশেষ ধরনের পয়েন্টার যা বর্তমান অবজেক্টকে নির্দেশ করে। 'this' পয়েন্টার কীভাবে সাহায্য করে তা দেখি।

উদাহরণ কোড (this পয়েন্টার ব্যবহার)

#include <iostream>
using namespace std;

class MyClass {
    private:
        int x;
    public:
        MyClass(int y) {
            x = y;
        }
        void myFunction(int x) {
            cout << "Value of x is: " << this->x;
        }
};

int main() {
    MyClass ob1(10);
    ob1.myFunction(40);
}

আউটপুট

Value of x is: 10

C++-এ আরেকটি অপারেটর আছে যেটি স্কোপ রেজোলিউশন অপারেটর। এটি প্যারেন্ট ক্লাসের মেম্বার বা কিছু স্ট্যাটিক মেম্বার অ্যাক্সেস করতে ব্যবহৃত হয়। যদি আমরা এর জন্য স্কোপ রেজোলিউশন অপারেটর ব্যবহার করি, তবে এটি কাজ করবে না। একইভাবে, যদি স্ট্যাটিক মেম্বারের জন্য 'this' পয়েন্টার ব্যবহার করি, তবে সমস্যা হবে।

উদাহরণ কোড (স্ট্যাটিক মেম্বারের জন্য :: অপারেটর)

#include <iostream>
using namespace std;

class MyClass {
    static int x;
    public:
        void myFunction(int x) {
            cout << "Value of x is: " << MyClass::x;
        }
};

int MyClass::x = 50;

int main() {
    MyClass ob1;
    ob1.myFunction(40);
}

আউটপুট

Value of x is: 50
  1. C++-এ ইউনারি অপারেটর (Unary Operators)

  2. PHP স্কোপ রেজোলিউশন অপারেটর (::)

  3. C#-তে স্কোপ রেজোলিউশন অপারেটর (Scope Resolution Operator)

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