কম্পিউটার

C++ অভ্যন্তরীণ?


এখানে আমরা ক্লাস ইন্টারনাল দেখব। তার আগে আমরা ডিফল্ট কনস্ট্রাক্টর দেখব, যেগুলো ইন্টারনালের সাথে সম্পর্কিত। ডিফল্ট কনস্ট্রাক্টর হল একটি কনস্ট্রাক্টর (ব্যবহারকারী বা কম্পাইলার দ্বারা সংজ্ঞায়িত) যেটি কোন আর্গুমেন্ট নেয় না। এখন প্রশ্ন আসে, কেন ডিফল্ট কনস্ট্রাক্টর ব্যবহার করা হয়?

যদি ডিফল্ট কনস্ট্রাক্টর দেওয়া না হয়, কম্পাইলার স্পষ্টভাবে ডিফল্ট কনস্ট্রাক্টর ঘোষণা করবে। ডিফল্ট কনস্ট্রাক্টর কিছু ক্লাস ইন্টারনাল শুরু করতে ব্যবহার করা হয়। এটি ক্লাসের ডেটা সদস্যকে প্রভাবিত করবে না। কম্পাইলার কিছু ভিন্ন পরিস্থিতিতে ডিফল্ট কনস্ট্রাক্টর সন্নিবেশ করায়। ধরুন একটি ক্লাস ডিফল্ট কনস্ট্রাক্টর সহ অন্য ক্লাস থেকে বা ডিফল্ট কনস্ট্রাক্টর সহ অন্য কোনও ক্লাসের একটি ক্লাস অবজেক্ট থেকে উদ্ভূত হয়েছে। কম্পাইলার বেস ক্লাস বা বর্তমান অবজেক্টের ভিতরে স্থাপন করা বস্তুর জন্য ডিফল্ট কনস্ট্রাক্টরকে কল করার জন্য কোড সন্নিবেশ করায়।

আসুন ধারণা পেতে একটি কোড দেখি।

উদাহরণ

#include<iostream>
using namespace std;
class Base {
   public:
      // compiler will create one constructor for the class "Base"
};
class ClassA {
   public:
   ClassA(){
      cout << "ClassA Constructor defined by user" << endl;
   }
   int x; //it will not be initialized
};
class ClassB : public ClassA {
   //compiler will create ClassB constructor and add some code to call
   ClassA constructor
};
class ClassC : public ClassA {
   public:
      ClassC() { //user defined consturctor, but compiler will add
         code to call A constructor
         cout << "User defined ClassC Constructor" << endl;
   }
};
class ClassD {
   public:
      ClassD(){
         // User defined default constructor. The compiler will add
         code to call object of ClassA
         cout << "User-defined consturctor for ClassD Constructor" <<
         endl;
   }
   private:
      ClassA obj;
};
int main() {
   Base baseObj;
   ClassB b;
   ClassC c;
   ClassD d;
}

আউটপুট

ClassA Constructor defined by user
ClassA Constructor defined by user
User defined ClassC Constructor
ClassA Constructor defined by user
User-defined consturctor for ClassD Constructor

  1. C++ এ রূপান্তর কনস্ট্রাক্টর?

  2. C++ এ স্ট্রাকচার বনাম ক্লাস

  3. C++ এ কনস্ট্রাক্টরের কাছে একটি ভেক্টর পাস করা

  4. C++ এ স্থানীয় ক্লাস