প্রথমে একটি মেমো-ইনিশিয়ালাইজার-তালিকা কী তা আমাকে ব্যাখ্যা করতে দিন । একজন Mem-সূচনাকারী-তালিকা একটি কমা দ্বারা পৃথক তালিকা Mem-সূচনাকারী এস, যেখানে প্রতিটি Mem-সূচনাকারী একজন সদস্য নাম দ্বারা অনুসরণ (
, একটি দ্বারা অনুসরণ অভিব্যক্তি-তালিকা , একটি দ্বারা অনুসরণ )
। অভিব্যক্তি-তালিকা কিভাবে সদস্য নির্মাণ করা হয়। উদাহরণস্বরূপ, ইন
static const char s_str[] = "bodacydo";
class Example
{
private:
int *ptr;
string name;
string *pname;
string &rname;
const string &crname;
int age;
public:
Example()
: name(s_str, s_str + 8), rname(name), crname(name), age(-4)
{
}
};
Mem-সূচনাকারী-তালিকা ব্যবহারকারী-সরবরাহকৃত, নো আর্গুমেন্ট কন্সট্রাকটর হয় name(s_str, s_str + 8), rname(name), crname(name), age(-4)
। এই মেম-ইনিশিয়ালাইজার-তালিকার অর্থ এই যে name
সদস্যটি কনস্ট্রাক্টর দ্বারা আরম্ভ করা হয় std::string
যা দুটি ইনপুট পুনরাবৃত্তি গ্রহণ করে , rname
সদস্যটি একটি রেফারেন্স দিয়ে আরম্ভ করা হয় name
, crname
সদস্যটি একটি কনস্ট-রেফারেন্স দিয়ে আরম্ভ করা হয় name
, এবং age
সদস্যটি মান দিয়ে আরম্ভ করা হয় -4
।
প্রতিটি কন্সট্রাক্টরের নিজস্ব মেম-ইনিশিয়ালাইজার-তালিকা থাকে এবং সদস্যরা কেবলমাত্র একটি নির্ধারিত আদেশে (মূলত ক্রম অনুসারে সদস্যগণ ঘোষিত হয়) আদেশে আরম্ভ করা যেতে পারে। সুতরাং, সদস্যদের Example
করতে পারেন শুধুমাত্র অনুক্রমে সক্রিয়া পারে: ptr
, name
, pname
, rname
, crname
, এবং age
।
আপনি যখন কোনও সদস্যের কোনও মেম-ইনিশিয়ালাইজার নির্দিষ্ট না করেন , তখন সি ++ স্ট্যান্ডার্ড বলে:
সত্তা যদি শ্রেণিবদ্ধ ... এর ননস্ট্যাটিক ডেটা সদস্য হয় তবে সত্তাটি ডিফল্ট-ইনিশিয়ালাইজড (8.5)। ... অন্যথায়, সত্তাটি আরম্ভ করা হয়নি।
এখানে, কারণ name
শ্রেণীর ধরণের একটি ননস্ট্যাটিক ডেটা সদস্য, এটির জন্য মেম-ইনিশিয়ালাইজার-তালিকায় কোনও প্রারম্ভিক name
নির্দিষ্ট না করা থাকলে এটি ডিফল্ট-আরম্ভ হয় । অন্যান্য সমস্ত সদস্যের Example
ক্লাসের ধরণ নেই, তাই তাদের আরম্ভ করা হয়নি।
স্ট্যান্ডার্ড যখন বলে যে এগুলি আরম্ভ করা হয়নি, তার অর্থ হল যে তাদের কোনও মান থাকতে পারে। সুতরাং, কারণ উপরের কোডটি আরম্ভ করা হয়নি pname
, এটি যে কোনও কিছু হতে পারে।
মনে রাখবেন যে আপনাকে এখনও অন্যান্য বিধি অনুসরণ করতে হবে, যেমন যে নিয়মটি উল্লেখগুলি সর্বদা শুরু করা উচিত। রেফারেন্স আরম্ভ না করা এটি একটি সংকলক ত্রুটি।