C ++ میں حوالہ کے ذریعہ کال کو کیسے نافذ کریں



یہ مضمون آپ کو عمل درآمدات کے ساتھ C ++ میں کال بہ حوالہ اور اس کے ذریعہ کال بذریعہ قیمت سے کیسے مختلف ہے کا ایک وقف شدہ علم فراہم کرے گا۔

اگر آپ کے پاس پہلے ہی C میں پس منظر موجود ہے تو C ++ کے ساتھ کام کرنا کوئی مشکل کام نہیں ہے کیونکہ یہ دونوں ایک دوسرے کے ساتھ ٹن تصورات کا اشتراک کرتے ہیں۔ لیکن ، C ++ میں کچھ تصورات ہیں جو سی تمثیل کا حصہ نہیں ہیں۔ C ++ آرٹیکل میں ریفرنس کے حوالہ سے اس کال میں ، ہم ایک ایسے ہی تصور کے بارے میں بات کریں گے جو مندرجہ ذیل ترتیب میں حوالہ متغیر اور اس کی درخواستیں ہیں۔

حوالہ متغیرات

C ++ ہمیں ایک نئی قسم کا متغیر دیتا ہے یعنی ایک حوالہ متغیر۔ ہم اپنے اصلی متغیر کے لقب کے بطور حوالہ متغیر کے بارے میں سوچ سکتے ہیں۔ یہی ایک لائن میں حوالہ متغیر کی عین مطابق فعالیت ہے۔





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

نحو:



ہیلو = 1 انٹرن * پی ٹی آر انٹ اور ورلڈ = ہیلو

جب ہم ایک متغیر ‘ہیلو’ والی قدر ‘1’ بناتے ہیں تو ، میموری کے ایک حصے کی قیمت کو خراب کرنے کے لئے استعمال کیا جاتا ہے ‘1’ اس طبقہ کا نام ‘ہیلو’ ہوگا اور اس حصے کا پتہ کچھ ہیکس قدر ہوگا مثال کے طور پر0x64۔ جب ہم لکھتے ہیںINTاور دنیا = ہیلو‘ورلڈ’ متغیر تخلیق کیا گیا ہے جو اسی میموری والے مقام کی طرف اشارہ کررہا ہے۔

ورلڈ ++ کو شامل کرنے سے پتے 0x64 میں تبدیلیاں ہوجائیں گی اس کا مطلب ہے کہ متغیر ‘ہیلو’ کی قدر بھی بدلے گی۔ کچھ اشارہ کر سکتے ہیں کہ کیسے ہیں حوالہ متغیر پوائنٹر متغیر سے مختلف ہیں جس پر ہم اس پوسٹ کے بعد کے حصے میں تبادلہ خیال کریں گے۔

قدر کے لحاظ سے کال کریں اور C ++ میں حوالہ سے حوالہ

قیمت کے لحاظ سے کال کریں: قدر کے ذریعہ کال ایک وسیع پیمانے پر استعمال شدہ طریقہ ہے۔ زیادہ تر اوقات آپ کال کو ویلیو اپروچ کے ذریعہ استعمال کرتے رہیں گے کیونکہ آپ نہیں چاہتے ہیں کہ متغیر کی اپنی اصل اقدار کو بدلا جائے۔ لہذا ہم نے ایک فنکشن کو کال کرنے کے لئے ویلیو کے طریقہ کار کے ذریعہ کال کا استعمال کیا ، صرف متغیرات کی قدریں ہی گزر گئیں۔ یہ میموری میں ڈمی متغیرات پیدا کرکے حاصل کیا جاتا ہے۔



کٹھ پتلی اور شیف کیا ہے
# نام کی جگہ ایس ٹی ڈی باطل ایڈ (INT ، انٹ b) using a = a + 10 b = b + 10 cout کا استعمال کرتے ہوئے شامل کریں<<'Value of a = '<  C ++ میں ویلیو کے ذریعہ کال کریں

مذکورہ شبیہہ سے ، ہم دیکھ سکتے ہیں کہ جیسے ہی ہم (فنکشن) کو کال کرتے ہیں x اور y متغیر کی اقدار کو متغیر a اور b میں کاپی کردیا جاتا ہے۔ A اور b ڈمی متغیر ہیں۔

حوالہ کے ذریعہ کال کریں: اب ، حوالہ طریقہ کے ذریعہ کال کے بارے میں بات کرتے ہیں۔ اس طریقہ کار میں علیحدہ ڈمی متغیرات نہیں بنائے جاتے ہیں ، پہلے سے موجود متغیر کا ایک حوالہ اس طریقہ کار کو منتقل کیا جاتا ہے۔ یہ حوالہ اسی میموری کے مقام کی طرف اشارہ کرتا ہے لہذا میموری میں الگ الگ کاپیاں نہیں بنائی جاتی ہیں۔ یہاں نوٹ کرنے کے لئے اہم نکتہ یہ ہے کہ حوالہ متغیر میں کی گئی تبدیلیاں ڈمی متغیر میں ظاہر ہوتی ہیں۔

mysql_fetch_array
# نام کی جگہ ایس ٹی ڈی باطل ایڈ (انٹ & ا ، انٹ اور بی) شامل کریں {a = a + 10 b = b + 10 cout کا استعمال کریں<<'Value of a = '< INT & min (int & a، int & b) {اگر (a) 

جیسا کہ ہم دیکھ سکتے ہیں کہ عام افعال کے مقابلے میں مذکورہ بالا فنکشن مختلف نظر آتا ہے چونکہ واپسی کی نوعیت 'انٹ & اینڈ' ہے۔ حالت کے لحاظ سے یہ فنکشن a یا b کا حوالہ دیتا ہے۔ یہاں نوٹ کرنے کے لئے اہم نکتہ یہ ہے کہ اقدارواپس نہیں کر رہے ہیں.

اگر ہم فنکشن کو کم سے کم (x، y) = 10 کہتے ہیں تو 10 کو X کے لئے تفویض کیا جائے گا اگر یہ کم سے کم ہے یا y کو اگر y کم سے کم ہے۔

حوالہ بمقابلہ اشارہ کے ذریعے کال کریں

اپنی تمام مثالوں میں ہم نے دیکھا کہ ہم نے ہمیشہ اپنے لئے تیار کردہ حوالہ متغیر کی قیمت مقرر کی ہے کیونکہ حوالہ متغیر NULL نہیں ہوسکتے ہیں جبکہ پوائنٹر متغیر NULL ہوسکتے ہیں اور غیر متوقع غلطیوں کا سبب بن سکتے ہیں۔

ہیش میپ اور ہیش ٹیبل میں کیا فرق ہے؟

حوالہ متغیر کو دوبارہ تفویض نہیں کیا جاسکتا ہے جبکہ پوائنٹر متغیر پروگرام میں بعد میں کسی دوسرے متغیر کی نشاندہی کرسکتے ہیں۔

ایک پوائنٹر متغیر کسی خاص متغیر کی ایڈریس ویلیو رکھتا ہے جبکہ حوالہ متغیر کا پتہ اسی متغیر کی طرح ہوتا ہے جس کا وہ حوالہ دیتا ہے۔

اس کے ساتھ ، ہم C ++ آرٹیکل میں اس کال بہ حوالہ کا اختتام کرتے ہیں۔ مجھے امید ہے کہ آپ کو قدر اور حوالہ کے ذریعہ کال کے مختلف نفاذ کے بارے میں سمجھ آگئی اور یہ کہ وہ دونوں کس طرح مختلف ہیں۔

اگر آپ مزید جاننا چاہتے ہیں تو ، چیک کریں ایڈورکا ، ایک قابل اعتماد آن لائن سیکھنے کی کمپنی کے ذریعے۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس آپ کو ہائبرنیٹ اور اسپرنگ جیسے جاوا کے مختلف فریم ورکوں کے ساتھ ساتھ جاوا کے دونوں بنیادی تصورات کی تربیت کے لئے ڈیزائن کیا گیا ہے۔

ہمارے لئے ایک سوال ہے؟ برائے کرم اس بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد از جلد آپ کے پاس مل جائیں گے۔