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

C++-এ explicit কীওয়ার্ডের অর্থ এবং ব্যবহার

explicit কীওয়ার্ড কনস্ট্রাক্টরকে ইমপ্লিসিট (Implicit) কনভারশন থেকে বাধা দেয়।

সমস্যা

class Foo {
public:
    Foo(int n);       // n বাইট অ্যালোকেট
    Foo(const char* p); // স্ট্রিং দিয়ে ইনিশিয়ালাইজ
};

Foo mystring = 'x'; // char 'x' ইমপ্লিসিটলি int-এ কনভার্ট হয়ে Foo(int) কল করে!

এটি অনিচ্ছাকৃত আচরণ।

সমাধান: explicit ব্যবহার

class Foo {
public:
    explicit Foo(int n);     // এখন ইমপ্লিসিট কনভারশন বাধা
    Foo(const char* p);      // এটি implicit থাকতে পারে
};

এখন Foo f = 10; কম্পাইল এরর দেবে। লিখতে হবে Foo f(10); বা Foo f = Foo(10);।

সুপারিশ: এক আর্গুমেন্ট वाले সব কনস্ট্রাক্টর explicit ঘোষণা করুন, ব noexcept কপি/মুভ কনস্ট্রাক্টর ছাড়া।

  1. টুইটারে বায়ো (Bio) মানে কী?

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

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

  4. C#-এ var কিওয়ার্ড কী কাজ করে?