এখানে আমরা দেখব, কনস্ট্রাক্টর কখন কল হয়। কনস্ট্রাক্টর বিভিন্ন টাইপের। গ্লোবাল, লোকাল, স্ট্যাটিক লোকাল, ডাইনামিক।
গ্লোবাল অবজেক্টের জন্য, কনস্ট্রাক্টর main ফাংশনে প্রবেশ করার আগে কল হয়।
উদাহরণ
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
MyClass myObj; // গ্লোবাল অবজেক্ট
int main() {
cout << "Inside Main";
}
আউটপুট
<пре class="result notranslate">Calling Constructor Inside Mainযখন অবজেক্ট নন-স্ট্যাটিক হয়, তবে কনস্ট্রাক্টর তখন কল হয় যখন এক্সিকিউশন সেই পয়েন্টে পৌঁছায় যেখানে অবজেক্ট তৈরি হয়।
উদাহরণ
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
int main() {
cout << "Inside Main\n";
MyClass myObj; // লোকাল অবজেক্ট
cout << "After creating object";
}
আউটপুট
Inside Main Calling Constructor After creating object
যখন অবজেক্ট লোকাল স্ট্যাটিক হয়, তবে শুধু প্রথমবারের জন্য এর কনস্ট্রাক্টর কল হবে, যদি একই ফাংশন আবার ব্যবহার করা হয়, তবে এটি প্রভাবিত করবে না।
উদাহরণ
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
void func() {
static MyClass myObj; // লোকাল স্ট্যাটিক অবজেক্ট
}
int main() {
cout << "Inside Main\n";
func();
cout << "After creating object\n";
func();
cout << "After second time";
}
আউটপুট
Inside Main Calling Constructor After creating object After second time
শেষ পর্যন্ত ডাইনামিক অবজেক্টের জন্য, কনস্ট্রাক্টর তখন কল হবে যখন new অপারেটর ব্যবহার করে অবজেক্ট তৈরি করা হবে।
উদাহরণ
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
int main() {
cout << "Inside Main\n";
MyClass* ptr;
cout << "Declaring pointer\n";
ptr = new MyClass;
cout << "After creating dynamic object";
}
আউটপুট
Inside Main Declaring pointer Calling Constructor After creating dynamic object