constructors that take parameters
কনস্ট্রাক্টর যারা প্যারামিটার নেয়,
কনস্ট্রাক্টর ফাংশনে আর্গুমেন্ট পাস করা সম্ভব। অনুমতি এটি, কেবল কনস্ট্রাক্টর ফাংশনের ঘোষণা এবং সংজ্ঞাতে উপযুক্ত পরামিতি যোগ করুন। তারপর, যখন আপনি একটি বস্তু ঘোষণা করেন, আর্গুমেন্টগুলি নির্দিষ্ট করুন। এটি কীভাবে সম্পন্ন হয় তা দেখতে, এখানে দেখানো সংক্ষিপ্ত উদাহরণ দিয়ে শুরু করুন:
#include <iostream>
using namespace std;
class myclass (
int a; public:
myclass (int x); // constructor
void how();
myclass::myclass (int x)
cout << In constructor\n"; a = x;
void myclass::show()
cout << a << "\n";
}
int main()
myclass ob(4);
ob.show();
return 0;
}
আসলে, একটি প্যারামিটারাইজড একটি আর্গুমেন্ট পাস করার জন্য সিনট্যাক্স
কনস্ট্রাক্টর এই দীর্ঘ ফর্মের জন্য সংক্ষিপ্ত বিবরণ:
যাইহোক, বেশিরভাগ C++ প্রোগ্রামাররা শর্ট ফর্ম ব্যবহার করে। প্রকৃতপক্ষে, কপি কনস্ট্রাক্টরের সাথে সম্পর্কিত দুটি ফর্মের মধ্যে একটি সামান্য প্রযুক্তিগত পার্থক্য রয়েছে, যা এই বইতে পরে আলোচনা করা হয়েছে। কিন্তু আপনার এখন এই পার্থক্য নিয়ে চিন্তা করার দরকার নেই।
কনস্ট্রাক্টর ফাংশনগুলির বিপরীতে, ডেস্ট্রাক্টর ফাংশনে প্যারামিটার থাকতে পারে না।
এর কারণটি বোঝার জন্য যথেষ্ট সহজ: কোনও প্রক্রিয়া নেই
যার দ্বারা ধ্বংস করা হচ্ছে এমন একটি বস্তুর কাছে আর্গুমেন্ট পাস করা যায়।
উদাহরণ
1. এটা সম্ভব-আসলে, বেশ সাধারণ-একটি কনস্ট্রাক্টরকে একাধিক আর্গুমেন্ট পাস করা। এখানে myclass() দুটি পাস করা হয়েছে
যুক্তি:
এখানে 4 পাস করা হয়েছে x এবং 7 পাস করা হয়েছে y-তে। এই একই সাধারণ পদ্ধতি আপনার পছন্দের যেকোন সংখ্যক আর্গুমেন্ট পাস করতে ব্যবহার করা হয় (অবশ্যই কম্পাইলার দ্বারা নির্ধারিত সীমা পর্যন্ত)।
2. এখানে স্ট্যাক ক্লাসের আরেকটি সংস্করণ রয়েছে যা একটি স্ট্যাকে "নাম" পাস করতে একটি প্যারামিটারাইজড কনস্ট্রাক্টর ব্যবহার করে। এই একক-অক্ষরের নামটি স্ট্যাকটি সনাক্ত করতে ব্যবহৃত হয় যা একটি ত্রুটি ঘটলে উল্লেখ করা হচ্ছে।
স্ট্রটাইপের এই সংস্করণে, কনস্ট্রাক্টর ফাংশন ব্যবহার করে একটি স্ট্রিংকে একটি প্রাথমিক মান দেওয়া হয়।
এই প্রোগ্রামটি বস্তু সম্পর্কে একটি গুরুত্বপূর্ণ বিষয় তুলে ধরে। তাদের সৃষ্টির সময় সঠিক পরিস্থিতির সাথে মানানসই করার জন্য প্রয়োজন অনুসারে সেগুলি তৈরি করা যেতে পারে। আপনি যখন C++ সম্পর্কে আরও জানবেন, তখন আপনি দেখতে পাবেন যে "উড়তে থাকা" বস্তু নির্মাণ করা কতটা দরকারী।
1. স্ট্যাক ক্লাস পরিবর্তন করুন যাতে এটি গতিশীলভাবে স্ট্যাকের জন্য মেমরি বরাদ্দ করে। কনস্ট্রাক্টর ফাংশনে একটি প্যারামিটার দ্বারা নির্দিষ্ট করা স্ট্যাকের আকার আছে। (একটি ধ্বংসকারী ফাংশন দিয়ে এই মেমরিটি মুক্ত করতে ভুলবেন না।)
2. t_and_d নামে একটি ক্লাস তৈরি করুন যেটি তৈরি করার সময় এটির কনস্ট্রাক্টরের কাছে একটি প্যারামিটার হিসাবে বর্তমান সিস্টেমের সময় এবং তারিখ পাস করা হয়। ক্লাসে একটি সদস্য ফাংশন অন্তর্ভুক্ত করুন যা পর্দায় এই সময় এবং তারিখ প্রদর্শন করে। (ইঙ্গিত: সময় এবং তারিখ খুঁজে পেতে এবং প্রদর্শন করতে স্ট্যান্ডার্ড লাইব্রেরিতে পাওয়া স্ট্যান্ডার্ড সময় এবং তারিখ ফাংশন ব্যবহার করুন।)
3. বক্স নামক একটি ক্লাস তৈরি করুন যার কন্সট্রাক্টর ফাংশন তিনটি দ্বিগুণ মান পাস করেছে, যার প্রতিটি একটি বাক্সের এক পাশের দৈর্ঘ্যকে প্রতিনিধিত্ব করে। বক্স ক্লাসে বক্সের ভলিউম গণনা করুন এবং ফলাফলটি একটি ডবল ভেরিয়েবলে সংরক্ষণ করুন। vol() নামে একটি সদস্য ফাংশন অন্তর্ভুক্ত করুন যা প্রতিটি বক্স বস্তুর ভলিউম প্রদর্শন করে।
0 Comments