কনস্ট্রাক্টারকে প্রায়শই ক্লাস-টাইপ অবজেক্ট এবং স্ট্রাকচার ইনিশিয়ালাইজ করার জন্য প্রয়োজনীয় মেম্বার ফাংশন হিসেবে উল্লেখ করা হয়। অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজের মতো, C++-এও কনস্ট্রাক্টার ব্যবহার হয়। এটি একটি নির্দিষ্ট পদ্ধতিতে অবজেক্ট তৈরি করতে ব্যবহৃত হয় যাতে স্ট্রাকচার জন্য অনইনিশিয়ালাইজড বা অনডিফাইনড আচরণ এড়ানো যায়।
এই গাইডটি বর্ণনা করবে:
- C++-এ “struct” কনস্ট্রাক্টার কী?
- C++-এ কনস্ট্রাক্টার ডিফাইন করার মূল পয়েন্টগুলো
- C++-এ “struct” কনস্ট্রাক্টারের সিনট্যাক্স
- C++-এ “struct” কনস্ট্রাক্টারের কাজকর্ম
- C++-এ ডিফল্ট “struct” কনস্ট্রাক্টার
- C++-এ প্যারামিটারাইজড “struct” কনস্ট্রাক্টার
- C++-এ স্ট্রাকচার কনস্ট্রাক্টারের জন্য পয়েন্টার কীভাবে তৈরি করবেন?
- নिष्कর্ষ
C++-এ, “struct” হল একটি স্ট্রাকচার যা একটি স্ট্রাকচারের ভিতরে একটি বিশেষ ফাংশন মেম্বার। “struct” কনস্ট্রাক্টার এর মেম্বার ভেরিয়েবলগুলো ইনিশিয়ালাইজ করতে ব্যবহৃত হয় এবং ব্যবহারকারীদের মিশ্র ডেটা টাইপের ভেরিয়েবলগুলির একটি নতুন গ্রুপ একই জায়গায় তৈরি করতে সক্ষম করে। সহজ কথায়, “struct” কনস্ট্রাক্টার হল একটি বিশেষ পদ্ধতি যা স্বয়ংক্রিয়ভাবে আহ্বান করা হয় যখনই ব্যবহারকারী ক্লাসের জন্য একটি অবজেক্ট ঘোষণা করেন।
C++-এ কনস্ট্রাক্টার ডিফাইন করার মূল পয়েন্টগুলো
C++-এ কনস্ট্রাক্টার ডিফাইন করার কিছু মূল পয়েন্ট নিচে দেওয়া হলো:
- কনস্ট্রাক্টারের নাম সর্বদা সেই ক্লাসের নামের সাথে একই থাকে যার অংশ সেটি।
- ব্যবহারকারী যদি কনস্ট্রাক্টার প্রদান না করেন, তবে একটি ডিফল্ট কনস্ট্রাক্টার জেনারেট হবে।
- কনস্ট্রাক্টার ইনপুট/আউটপুট অপারেশনের জন্য নয়, ইনিশিয়ালাইজেশনের জন্য ব্যবহৃত হয়।
- রান টাইমে অপারেটরের সাহায্যে মেমরি লোকেট করতে ব্যবহৃত হয়।
- এটিকে ভার্চুয়াল এবং স্ট্যাটিক ঘোষণা করা যায় না।
- ব্যবহারকারী একাধিক কনস্ট্রাক্টার ঘোষণা করতে পারেন (এটি ওভারলোডেড হতে পারে)।
C++-এ “struct” কনস্ট্রাক্টারের সিনট্যাক্স
স্ট্রাকচার কনস্ট্রাক্টারের সাধারণ সিনট্যাক্স চেক করা যাক:
struct Structure-Name{
d_type variable1;
d_type variable2;
........
........
//প্যারামিটার ছাড়া কনস্ট্রাক্টার
Structure-Name()
{
//code
}
//প্যারামিটারসহ কনস্ট্রাক্টার
Structure-Name (d_type variable1, d_type variable2,..)
{
//code
}
};
উপরোক্ত বর্ণিত সিনট্যাক্স অনুযায়ী:
- “Structure-Name” ব্যবহারকারীর পছন্দের স্ট্রাকচার নাম দ্বারা প্রতিস্থাপিত হবে এবং “struct” কীওয়ার্ড দিয়ে ডিফাইন করা হবে।
- “d_type variable1” বিভিন্ন ডেটা টাইপের সাথে ভেরিয়েবল নাম প্রতীক করছে।
- তারপর, “Structure-Name()” কনস্ট্রাক্টার প্যারামিটার ছাড়া ডিফাইন করা হয়েছে।
- পরবর্তীতে, প্যারামিটারাইজড কনস্ট্রাক্টারের সিনট্যাক্সও ডিফাইন করা হয়েছে, যেন “Structure-Name(d_type variable1,…)” প্যারামিটারাইজড কনস্ট্রাক্টারকে প্রতীক করছে।
নোট: C++-এ “struct” ঘোষণা ক্লাস ঘোষণার মতোই।
C++-এ “struct” কনস্ট্রাক্টারের কাজকর্ম
C++-এ, ব্যবহারকারীরা তাদের প্রয়োজন অনুযায়ী প্যারামিটার ছাড়া বা সাথে স্ট্রাকচার কনস্ট্রাক্টার ব্যবহার করতে পারেন। ভালো বোঝার জন্য নিচের কোড ডেমো gezien যাক।
C++-এ ডিফল্ট “struct” কনস্ট্রাক্টার তৈরি করা
C++-এ ডিফল্ট স্ট্রাকচার কনস্ট্রাক্টার তৈরি করতে, নিচের কোড ব্লক চেক করুন:
#include <iostream>
using namespace std;
struct folk{
string name;
float height;
int age;
folk(){
name= "David";
height = 6.7;
age = 26;
cout<<"Name: "<<name<<endl<<"Height: "<<height<<endl<<"Age: "<<age<<endl;
}
};
int main()
{
folk();
}
উপরোক্ত দেওয়া কোড ব্লকে:
- প্রথমে, আমরা “# include <iostream>” ইনপুট/আউটপুট স্ট্রিম লাইব্রেরি হেডার ফাইল হিসেবে যোগ করেছি।
- পরবর্তীতে, “using namespace std” ব্যবহার করেছি স্ট্যান্ডার্ড লাইব্রেরি আইডেন্টিফায়ার ব্যবহারের জন্য।
- পরে, আমরা “folk()” স্ট্রাকচার তৈরি করেছি তিনটি মেম্বারের সাথে যাদের ডেটা টাইপ ভিন্ন, যেন “name” স্ট্রিং হিসেবে, “height” ফ্লোট হিসেবে, এবং “age” ইন্টিজার টাইপ হিসেবে।
- তারপর, স্ট্রাকচারের জন্য কনস্ট্রাক্টার যোগ করেছি এবং মেম্বারগুলোকে সংশ্লিষ্ট মান দিয়ে ইনিশিয়ালাইজ করেছি। কনস্ট্রাক্টার বডির ভিতরে, আমরা folk স্ট্রাকচারের ডেটা ডিফাইন করেছি এবং কনসোলে রেজাল্ট দেখানোর জন্য “cout” স্টেটমেন্ট ব্যবহার করেছি।
আউটপুট
C++-এ প্যারামিটারাইজড “struct” কনস্ট্রাক্টার তৈরি করা
C++-এ প্যারামিটারাইজড কনস্ট্রাক্টার তৈরি করতে, নিচের দেওয়া কোড চেষ্টা করুন:
#include <iostream>
using namespace std;
struct folk{
string name;
float height;
int age;
folk(string x, float y, int z){
name = x;
height = y;
age = z;
}
};
int main()
{
folk f1("Ayzel", 5.1, 23);
cout<<"Name: " <<f1.name<<endl<<"Height: "<<f1.height<<endl<<"Age: "<<f1.age<<endl;
}
এখানে:
- আমরা পূর্বে আলোচনা করা উদাহরণটি বর্ধিত করেছি এবং ভেরিয়েবলগুলো তাদের সংশ্লিষ্ট ডেটা টাইপসহ কনস্ট্রাক্টারের প্যারামিটার হিসেবে পাস করেছি, যেন “x” স্ট্রিং হিসেবে, “y” ফ্লোট হিসেবে, এবং “z” ইন্টিজার হিসেবে।
- শেষে, “main()” ফাংশনের ভিতরে আমরা “f1” নামক অবজেক্ট তৈরি করেছি এবং মানসহ কনস্ট্রাক্টার আহ্বান করেছি। তারপর, কনসোলে ভেরিয়েবলগুলোর ফলাফল প্রিন্ট করার জন্য “cout” স্টেটমেন্ট ব্যবহার করেছি।
আউটপুট

C++-এ স্ট্রাকচার কনস্ট্রাক্টারের জন্য পয়েন্টার কীভাবে তৈরি করবেন?
একটি পয়েন্টার হল একটি ভেরিয়েবল যা একটি অবজেক্টের মেমরি অ্যাড্রেস সংরক্ষণের জন্য ব্যবহৃত হয়। C++-এ, পয়েন্টারগুলো অ্যারে-এর এলিমেন্ট বা অন্যান্য ডেটা স্ট্রাকচার এর ওভার ইটারেট করার জন্যও ব্যবহার হয় এবং অনেক উদ্দেশ্যে। পয়েন্টার ভেরিয়েবলগুলো ইউজার-ডিফাইনড টাইপের জন্যও তৈরি হয় যেন স্ট্রাকচার। স্ট্রাকচারের জন্য পয়েন্টার তৈরি করার প্রদত্ত উদাহরণটি দেখা যাক:
#include <iostream>
#include <cstring>
using namespace std;
struct folk
{
string name;
int age;
};
int main(){
struct folk f = {"Elice ", 28};
struct folk *ptr;
ptr = &f;
cout << f.name << f.age << endl;
cout <name <age << endl;
return 0;
}
উপরোক্ত প্রদত্ত কোডে:
- আমরা “<iostream>” এবং “<cstring>” হেডার ফাইল যোগ করেছি।
- তারপর, “using namespace std” স্পেসিফাই করেছি স্ট্যান্ডার্ড লাইব্রেরি আইডেন্টিফায়ার ব্যবহারের জন্য।
- পরবর্তীতে, আমরা “folk()” স্ট্রাকচার তৈরি করেছি দুটি মেম্বারের সাথে যাদের ডেটা টাইপ ভিন্ন, যেন “name” স্ট্রিং হিসেবে, এবং “age” ইন্টিজার টাইপ হিসেবে।
- পরে, আমরা “folk” স্ট্রাকচারের জন্য একটি পয়েন্টার “ptr” ডিফাইন করেছি।
- এখন, আমরা “f” স্ট্রাকচার ভেরিয়েবলকে পয়েন্ট করার জন্য একটি পয়েন্টার “ptr” তৈরি করেছি। ফলে, “ptr” এখন স্ট্রাকচার ভেরিয়েবল “f”-এর অ্যাড্রেস সংরক্ষণ করছে।
- শেষে, আমরা “->” অপারেটর ব্যবহার করেছি স্ট্রাকচারের ডেটা মেম্বার অ্যাক্সেস করতে সেই স্ট্রাকচারের একটি পয়েন্টার ব্যবহার করে।
উপরোক্ত বর্ণিত কোডের আউটপুট এখানে:

নिष्कর্ষ
C++-এ, “struct” হল একটি স্ট্রাকচার যা একটি স্ট্রাকচারের ভিতরে একটি বিশেষ মেম্বার ফাংশন যা এর মেম্বার ভেরিয়েবলগুলো ইনিশিয়ালাইজ করতে ব্যবহৃত হয় এবং ব্যবহারকারীদের মিশ্র ডেটা টাইপের ভেরিয়েবলগুলির একটি নতুন গ্রুপ একই জায়গায় তৈরি করতে সক্ষম করে। ব্যবহারকারীরা প্যারামিটার ছাড়া বা সাথে কনস্ট্রাক্টার ডিফাইন করতে পারেন। C++-এ, পয়েন্টার ভেরিয়েবলগুলো ইউজার-ডিফাইনড টাইপের জন্যও তৈরি হয় যেন স্ট্রাকচার। আমরা C++-এ স্ট্রাকচার কনস্ট্রাক্টার সম্পর্কে বিস্তারিত তথ্য প্রদর্শন করেছি।
লেখক সম্পর্কে
মারিয়া নাজ
আমি কম্পিউটার সাইন্সে মাস্টার্স ডিগ্রি ধারণ করছি। আমি আমার কাজের প্রতি অভিধানী, নতুন টেকনোলজি এক্সপ্লোর করা, প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখা, এবং আমার জ্ঞান বিশ্বের সাথে শেয়ার করা পছন্দ করি।