C++ میں ساخت کا بائنڈنگ

C My Sakht Ka Bayn Ng



سٹرکچر بائنڈنگ آپ کو سٹرکچر یا کلاس سے عناصر کو نکالنے اور ہر ممبر تک الگ الگ رسائی کے بغیر انہیں مختلف متغیرات میں تفویض کرنے کی اجازت دیتی ہے۔ سٹرکچر بائنڈنگ کا استعمال دستی عنصر نکالنے کی ضرورت کو ختم کرنے کے لیے کیا جاتا ہے اور کسی ڈھانچے یا کلاس کے متعدد عناصر کو الگ الگ متغیرات میں بیک وقت کھولنے کی اجازت دے کر کوڈ کی پڑھنے کی اہلیت اور جامعیت کو بہتر بناتا ہے۔ اس ٹیوٹوریل میں، ہم C++ میں ورکنگ، نحو، اور ساخت کی بائنڈنگ کی مثالوں پر بات کریں گے۔

C++ میں سٹرکچرڈ بائنڈنگ کیا ہے؟

سٹرکچر بائنڈنگ ایک C++ خصوصیت ہے جو C++ 17 میں شامل کی گئی ہے جو کوڈ کی جامعیت کو بہتر بنا کر، انفرادی متغیرات میں ساخت یا ٹیپل کے گلنے کی بھی اجازت دیتی ہے۔ اس کا استعمال struct ممبر کی رسائی نحو کو آسان بنانے اور ٹائپوز یا غلط انڈیکسنگ کی وجہ سے ہونے والی غلطیوں کے امکان کو کم کرنے کے لیے کیا جا سکتا ہے۔

نحو







C++ میں ڈھانچہ بائنڈنگ کا نحو درج ذیل ہے:



آٹو [ var1 , var2 , ... ] = اظہار ;

C++ میں ڈھانچہ بائنڈنگ کے نحو میں، جہاں 'var1'، اور 'var2' متغیر نام ہیں، اور 'اظہار' ایک ایسا اظہار ہے جس سے ساخت یا کلاس حاصل ہوتا ہے۔ ہم خود کار طریقے سے بننے والے متغیرات کا اعلان کرنے کے لیے آٹو کلیدی الفاظ استعمال کرتے ہیں۔



ترمیم کرنے والے

ترمیم کنندگان کو ساختی پابندیوں کے ساتھ جوڑا بنانے میں استعمال کیا جا سکتا ہے۔ ان کا نحو درج ذیل ہے:





آٹو اور [ a , ب , c , ... ] = اظہار ;

آٹو && [ a , ب , c , ... ] = اظہار ;

اعلامیہ میں استعمال ہونے والا '&' یا '&&' آپریٹر اس بات کی وضاحت کرتا ہے کہ آیا بائنڈنگ ایک lvalue یا rvalue حوالہ ہے۔ ایک lvalue حوالہ جس کی نمائندگی '&' کرتا ہے ایک حوالہ قائم کرتا ہے جو بائنڈنگ متغیر کی اقدار کو تبدیل کرنے کے لیے استعمال کیا جا سکتا ہے۔ حوالہ کا استعمال کرتے ہوئے کی گئی اقدار میں تبدیلی اصل ساخت یا ٹیپل میں دیکھی جائے گی۔

rvalue حوالہ جس کی نمائندگی '&&' کرتی ہے، مخالف طرف، ایک حوالہ فراہم کرتا ہے جو بائنڈنگ میں شامل متغیرات کی قدر کو پڑھنے کے لیے استعمال کیے جانے تک محدود ہے۔ یہ عارضی اشیاء یا rvalues ​​کے پابند ہونے کے لیے آسان ہے جن کو تباہ کرنے کی ضرورت ہے کیونکہ یہ آبجیکٹ کی نقل بنانے سے گریز کرتا ہے، یہ میموری اور وقت طلب ہوسکتا ہے۔



مثال 1: C++ میں سٹرکچر بائنڈنگ

درج ذیل C++ ڈھانچہ بائنڈنگ کی ایک مثال ہے۔

#include

نام کی جگہ کا استعمال کرتے ہوئے std ;

ساخت مکعب

{

int ایکس ;

int اور ;

int کے ساتھ ;

} ;

int مرکزی ( )

{

c-کیوب = { 10 , بیس , 30 } ;

آٹو [ x_coordinate , y_coordinate , z_coordinate ] = c ;

cout << 'X محور :' << x_coordinate << endl ;

cout << 'Y-axis :' << y_coordinate << endl ;

cout << 'Z محور :' << z_coordinate << endl ;

واپسی 0 ;

}

مندرجہ بالا مثال میں، ہم تین عدد x، y، اور z کے ساتھ ایک ڈھانچہ کیوب کا اعلان کرتے ہیں۔ ڈھانچہ خلا میں ایک مکعب کو ظاہر کرتا ہے۔ قسم کیوب کا ایک متغیر c بنایا جاتا ہے اور اقدار (10,20,30) کے ساتھ شروع کیا جاتا ہے۔ اس کوڈ کے ڈھانچے میں بائنڈنگ انفرادی متغیرات x_coordinate، y_coordinate، z_coordinate کے ارکان کی اقدار x، y، اور z کو ترتیب دیتا ہے، نحو آٹو[x_coordinate, y_coordinate, z_coordinate] = c کا استعمال کرتے ہوئے بالترتیب۔ مندرجہ بالا کی پیداوار ذیل میں دکھایا گیا ہے:

مثال 2: ساخت کو کھولنے کے لیے C++ میں سٹرکچر بائنڈنگ

ذیل میں کسی ڈھانچے کو پیک کرنے کے ڈھانچے کے پابند ہونے کی ایک مثال ہے۔

# شامل کریں

#include

نام کی جگہ کا استعمال کرتے ہوئے std ;

ساخت طالب علم {

تار کا نام ;

int عمر ;

} ;

int مرکزی ( ) {

طالب علم ایس { 'حمزہ' , 32 } ;

آٹو [ نام , عمر ] = s ;

cout << نام << 'ہے' << عمر << ' سالوں کا.' << endl ;

واپسی 0 ;

}

مندرجہ بالا کوڈ میں، طالب علم کے ڈھانچے کے دو ارکان ہوتے ہیں: a نام یہ ایک تار اور ایک ہے۔ عمر یہ ایک عدد عدد ہے۔ پھر، ہم اسٹوڈنٹ آبجیکٹ بناتے ہیں اور اس کے ہر ممبر کو ابتدائی اقدار تفویض کرتے ہیں۔ اس کے بعد s کے ممبران کو سٹرکچرل بائنڈنگ کا استعمال کرتے ہوئے متغیر کے نام اور عمر میں الگ کر دیا جاتا ہے، اور پھر ان اقدار کو نیچے اسکرین شاٹ کی طرح پرنٹ کیا جاتا ہے:

مثال 3: ترمیم کنندگان کے ساتھ C++ میں ساخت کا بائنڈنگ

ذیل میں سٹرکچر بائنڈنگ کی ایک مثال ہے جو ایک متغیر کی قدر کو num1 اور num2 کے طور پر اپ ڈیٹ کرنے کے لیے ایک موڈیفائر کا استعمال کرتی ہے۔

# شامل کریں

# شامل کریں

نام کی جگہ کا استعمال کرتے ہوئے std ;

int مرکزی ( ) {

ٹوپل < int , int > t { 25 , بیس } ;

آٹو اور [ نمبر 1 , نمبر 2 ] = t ;

cout << 'num1 کی قدر =' << نمبر 1 << '، نمبر 2 = ' << نمبر 2 << ' \n ' ;

نمبر 1 = 30 ;

cout << 'num1 کی تبدیل شدہ قدر =' << نمبر 1 << '، نمبر 2 = ' << نمبر 2 <<

' \n ' ;

آٹو && [ نمبر3 , نمبر4 ] = make_tuple ( 100 , 250 ) ;

cout << 'اب num3 کی قدر =' << نمبر3 << ', num4 = ' << نمبر4 << ' \n ' ;

واپسی 0 ;

}

پچھلے کوڈ میں، ہم ایک tuple t بناتے ہیں اور اس کے اجزاء کو num1 اور num2 سے جوڑنے کے لیے lvalue حوالہ استعمال کرتے ہیں۔ پھر ہم num1 کی قدر کو 30 میں تبدیل کرتے ہیں اور num1 اور num2 کی قدروں کو آؤٹ پٹ کرتے ہیں۔ make_tuple(100, 250) کے ذریعے ایک عارضی ٹپل بھی بنائیں اور اس کے عناصر کو num3 اور num4 سے باندھنے کے لیے rvalue حوالہ استعمال کریں۔ اس کے بعد num3 اور num4 کی قدریں پرنٹ کی جاتی ہیں کیونکہ num3 اور num4 کو rvalue حوالہ کے ساتھ جوڑا جاتا ہے، وہ make_tuple(100, 250) کے ذریعہ بنائے گئے عارضی ٹپل کو تبدیل کرنے کے لیے استعمال نہیں کیے جا سکتے۔ وہ صرف اس سے پڑھنے کے قابل ہیں۔ جب آپ پروگرام پر عمل کرتے ہیں، تو درج ذیل نتیجہ اسکرین پر ظاہر ہوگا:

نتیجہ

سٹرکچر بائنڈنگ C++ میں ایک خصوصیت ہے جو ایک ہی اظہار میں ایک ڈھانچہ یا کلاس کی متعدد اقدار کو انفرادی متغیرات میں کھول دیتی ہے، جس کے نتیجے میں زیادہ جامع، پڑھنے کے قابل اور محفوظ کوڈ ہوتا ہے۔ موڈیفائرز کا استعمال کرتے ہوئے ڈھانچے کی پابندی ساختی اشیاء کے اندر اقدار کو تبدیل کرنے کے عمل کو ہموار کرتی ہے۔