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

C++-এ ক্লাস ইনহেরিটেন্স বাধা দেওয়া (Final Class)

C++11-এর আগে final কীওয়ার্ড না থাকায় ইনহেরিটেন্স বাধা দেওয়ার জন্য একটি টেকনিক ব্যবহার করা হতো। C++11 থেকে সরাসরি final কীওয়ার্ড উপলব্ধ।

পুরানো টেকনিক (Pre-C++11): ভার্চুয়াল বেস + প্রাইভেট কনস্ট্রাক্টর

class FinalClass; // ফরওয়ার্ড ডিক্লেরেশন

class MakeFinal {
private:
    MakeFinal() {}
    friend class FinalClass;
};

class FinalClass : virtual MakeFinal {
public:
    FinalClass() {}
};

class Derived : public FinalClass { // কম্পাইল এরর
    Derived() {}
};

C++11+ আধুনিক পদ্ধতি

class FinalClass final { // শুধু final লিখলেই হয়
public:
    FinalClass() {}
};

// class Derived : public FinalClass { }; // Error: cannot derive from 'final' class

আউটপুট (পুরানো টেকনিকের এরর)

In constructor 'Derived::Derived()': [Error] 'MakeFinal::MakeFinal()' is private

সারসংক্ষেপ: C++11+ এ class Name final ব্যবহার করুন। পুরানো কোডবেসের জন্য ভার্চুয়াল বেস + প্রাইভেট কনস্ট্রাক্টর + ফ্রেন্ড টেকনিক কাজে লাগে।

  1. C++-এ মাল্টিপল ইনহেরিট্যান্স

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

  3. C++-এ অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) কীভাবে শুরু করবেন?

  4. পাইথনে ক্লাস ইনহেরিটেন্স কীভাবে কাজ করে?