C++ এ স্ট্রাকচার বাইন্ডিং

C E Strakacara Ba Indim



স্ট্রাকচার বাইন্ডিং আপনাকে একটি স্ট্রাকট বা ক্লাস থেকে উপাদানগুলি বের করতে এবং প্রতিটি সদস্যকে আলাদাভাবে অ্যাক্সেস না করেই বিভিন্ন ভেরিয়েবলের জন্য বরাদ্দ করতে দেয়। স্ট্রাকচার বাইন্ডিং ম্যানুয়াল উপাদান নিষ্কাশনের প্রয়োজনীয়তা দূর করতে ব্যবহৃত হয় এবং একটি কাঠামো বা শ্রেণির অসংখ্য উপাদানকে পৃথক ভেরিয়েবলে একযোগে আনপ্যাক করার অনুমতি দিয়ে কোডের পাঠযোগ্যতা এবং সংক্ষিপ্ততা উন্নত করে। এই টিউটোরিয়ালে, আমরা C++ এ কাজ, সিনট্যাক্স এবং স্ট্রাকচার বাইন্ডিংয়ের উদাহরণ নিয়ে আলোচনা করব।

C++ এ স্ট্রাকচার্ড বাইন্ডিং কি?

স্ট্রাকচার বাইন্ডিং হল একটি C++ বৈশিষ্ট্য যা C++17-এ যোগ করা হয়েছে যা কোডের সংক্ষিপ্ততাকে উন্নত করে একটি স্ট্রাকট বা টিপলকে পৃথক ভেরিয়েবলে পচানোর অনুমতি দেয়। এটি স্ট্রাকট মেম্বার অ্যাক্সেস সিনট্যাক্স সহজ করতে এবং টাইপো বা ভুল সূচীকরণ দ্বারা আনা ত্রুটির সম্ভাবনা কম করতে ব্যবহার করা যেতে পারে।

বাক্য গঠন







C++ এ স্ট্রাকচার বাইন্ডিং এর সিনট্যাক্স নিম্নরূপ:



স্বয়ংক্রিয় [ var1 , var2 , ... ] = অভিব্যক্তি ;

C++ এ স্ট্রাকচার বাইন্ডিংয়ের সিনট্যাক্সে, যেখানে 'var1', এবং 'var2' হল পরিবর্তনশীল নাম, এবং 'এক্সপ্রেশন' হল একটি অভিব্যক্তি যা একটি স্ট্রাকট বা শ্রেণী তৈরি করে। আমরা স্বয়ংক্রিয়ভাবে তৈরি ভেরিয়েবল ঘোষণা করতে অটো কীওয়ার্ড ব্যবহার করি।



সংশোধক

সংশোধকগুলিকে কাঠামোবদ্ধ বাইন্ডিংয়ের সাথে জোড়ায় ব্যবহার করা যেতে পারে। তাদের সিনট্যাক্স নীচে উল্লেখ করা হয়েছে:





স্বয়ংক্রিয় এবং [ , , , ... ] = অভিব্যক্তি ;

স্বয়ংক্রিয় && [ , , , ... ] = অভিব্যক্তি ;

ঘোষণায় ব্যবহৃত '&' বা '&&' অপারেটরটি সংজ্ঞায়িত করে যে বাঁধাই একটি lvalue বা rvalue রেফারেন্স কিনা। '&' দ্বারা উপস্থাপিত একটি lvalue রেফারেন্স একটি রেফারেন্স স্থাপন করে যা বাইন্ডিং ভেরিয়েবলের মান পরিবর্তন করতে ব্যবহার করা যেতে পারে। রেফারেন্স ব্যবহার করে করা মানগুলির পরিবর্তনগুলি মূল কাঠামো বা টিপলে দেখা যাবে।

বিপরীত দিকে '&&' দ্বারা উপস্থাপিত rvalue রেফারেন্স একটি রেফারেন্স প্রদান করে যা বাইন্ডিং-এ অন্তর্ভুক্ত ভেরিয়েবলের মান পড়ার জন্য ব্যবহার করা পর্যন্ত সীমাবদ্ধ। এটি ক্ষণস্থায়ী বস্তু বা rvalues ​​এর সাথে আবদ্ধ করার জন্য সুবিধাজনক যেগুলিকে ধ্বংস করতে হবে কারণ এটি বস্তুর প্রতিরূপ তৈরি করা এড়ায়, এটি মেমরি এবং সময়সাপেক্ষ হতে পারে।



উদাহরণ 1: C++ এ স্ট্রাকচার বাইন্ডিং

নিম্নলিখিত C++ কাঠামো বাঁধাইয়ের একটি উদাহরণ:

#include

নামস্থান std ব্যবহার করে ;

গঠন ঘনক্ষেত্র

{

int এক্স ;

int এবং ;

int সঙ্গে ;

} ;

int প্রধান ( )

{

c-কিউব = { 10 , বিশ , 30 } ;

স্বয়ংক্রিয় [ x_coordinate , y_coordinate , z_coordinate ] = ;

cout << 'এক্স অক্ষ :' << x_coordinate << endl ;

cout << 'Y-অক্ষ :' << y_coordinate << endl ;

cout << 'Z অক্ষ :' << z_coordinate << endl ;

প্রত্যাবর্তন 0 ;

}

উপরের উদাহরণে, আমরা তিনটি পূর্ণসংখ্যা x, y, এবং z সহ একটি স্ট্রাকট কিউব ঘোষণা করি। কাঠামোটি মহাকাশে একটি ঘনক দেখায়। টাইপ কিউবের একটি ভেরিয়েবল c তৈরি করা হয় এবং মান দিয়ে শুরু করা হয় (10,20,30)। এই কোড স্ট্রাকচারে বাইন্ডিং সিনট্যাক্স অটো[ x_coordinate, y_coordinate, z_coordinate ] = c ব্যবহার করে যথাক্রমে পৃথক ভেরিয়েবল x_coordinate, y_coordinate, z_coordinate-এর সদস্যদের x, y, এবং z-এর মান নির্ধারণ করে। উপরের আউটপুট নীচে দেখানো হয়েছে:

উদাহরণ 2: একটি কাঠামো আনপ্যাক করতে C++ এ স্ট্রাকচার বাইন্ডিং

নীচে একটি স্ট্রাকট আনপ্যাক করার কাঠামো বাঁধাইয়ের একটি উদাহরণ:

# অন্তর্ভুক্ত করুন

#include

নামস্থান std ব্যবহার করে ;

গঠন ছাত্র {

স্ট্রিং নাম ;

int বয়স ;

} ;

int প্রধান ( ) {

ছাত্র এস { 'হামজা' , 32 } ;

স্বয়ংক্রিয় [ নাম , বয়স ] = s ;

cout << নাম << 'হয়' << বয়স << ' বছর পুরনো.' << endl ;

প্রত্যাবর্তন 0 ;

}

উপরের কোডে, একটি স্টুডেন্ট স্ট্রাকটে দুটি সদস্য রয়েছে: ক নাম যে একটি স্ট্রিং এবং একটি বয়স যে একটি পূর্ণসংখ্যা. তারপর, আমরা স্টুডেন্ট অবজেক্ট তৈরি করি এবং এর প্রতিটি সদস্যকে প্রাথমিক মান বরাদ্দ করি। s-এর সদস্যদের তারপর স্ট্রাকচারাল বাইন্ডিং ব্যবহার করে ভেরিয়েবলের নাম এবং বয়সে বিভক্ত করা হয় এবং এই মানগুলি নীচের স্ক্রিনশটের মতো প্রিন্ট করা হয়:

উদাহরণ 3: মডিফায়ার সহ C++ এ স্ট্রাকচার বাইন্ডিং

নীচে স্ট্রাকচার বাইন্ডিংয়ের একটি উদাহরণ দেওয়া হল যা num1 এবং num2 হিসাবে একটি ভেরিয়েবলের মান আপডেট করতে একটি মডিফায়ার ব্যবহার করে:

# অন্তর্ভুক্ত করুন

# অন্তর্ভুক্ত

নামস্থান std ব্যবহার করে ;

int প্রধান ( ) {

টিপল < int , int > t { 25 , বিশ } ;

স্বয়ংক্রিয় এবং [ সংখ্যা1 , সংখ্যা2 ] = t ;

cout << 'সংখ্যা 1 এর মান = ' << সংখ্যা1 << ', num2 = ' << সংখ্যা2 << ' \n ' ;

সংখ্যা1 = 30 ;

cout << 'num1 এর পরিবর্তিত মান = ' << সংখ্যা1 << ', num2 = ' << সংখ্যা2 <<

' \n ' ;

স্বয়ংক্রিয় && [ 3 নং , সংখ্যা4 ] = make_tuple ( 100 , 250 ) ;

cout << 'এখন num3 এর মান = ' << 3 নং << ', num4 = ' << সংখ্যা4 << ' \n ' ;

প্রত্যাবর্তন 0 ;

}

পূর্ববর্তী কোডে, আমরা একটি টিপল টি তৈরি করি এবং এর উপাদানগুলিকে num1 এবং num2 এর সাথে লিঙ্ক করতে lvalue রেফারেন্স ব্যবহার করি। তারপরে আমরা num1 এর মান 30 এ পরিবর্তন করি এবং num1 এবং num2 মান আউটপুট করি। এছাড়াও make_tuple(100, 250) এর মাধ্যমে একটি অস্থায়ী টিপল তৈরি করুন এবং এর উপাদানগুলিকে num3 এবং num4 এ বাঁধতে একটি rvalue রেফারেন্স ব্যবহার করুন। num3 এবং num4 এর মানগুলি তখন প্রিন্ট করা হয় কারণ num3 এবং num4 একটি rvalue রেফারেন্সের সাথে মিলিত হয়, তারা make_tuple(100, 250) দ্বারা গঠিত অস্থায়ী টিপল পরিবর্তন করতে ব্যবহার করা যাবে না। তারা কেবল এটি থেকে পড়তে সক্ষম। আপনি যখন প্রোগ্রামটি চালান, নিম্নলিখিত ফলাফলটি স্ক্রিনে প্রদর্শিত হবে:

উপসংহার

স্ট্রাকচার বাইন্ডিং হল C++ এর একটি বৈশিষ্ট্য যা একটি স্ট্রাকট বা ক্লাসের একাধিক মানকে একটি একক অভিব্যক্তিতে পৃথক ভেরিয়েবলে আনপ্যাক করে, যার ফলে আরও সংক্ষিপ্ত, পাঠযোগ্য এবং নিরাপদ কোড হয়। মডিফায়ার ব্যবহার করে স্ট্রাকচার বাইন্ডিং স্ট্রাকচার্ড অবজেক্টের মধ্যে মান পরিবর্তনের প্রক্রিয়াকে স্ট্রিমলাইন করে।