C++/CX
سی + +/سی ایکس (سی + + اجزاء کی توسیع) مائیکروسافٹ کے ونڈوز رن ٹائم پلیٹ فارم کے لیے ایک زبان کا تخمینہ ہے۔ یہ سی + + مرتب کرنے والوں کے لیے زبان کی توسیع کی شکل اختیار کرتا ہے، اور یہ سی + + پروگرامرز کو ایسے پروگرام لکھنے کے قابل بناتا ہے جو ونڈوز رن ٹائم (ون آر ٹی) اے پی آئی کو کال کرتے ہیں۔ سی + +/سی ایکس کی جگہ سی + +/ون آر ٹی زبان کے پروجیکشن نے لے لی ہے، جو کہ سی + + زبان کی توسیع نہیں ہے بلکہ یہ ایک مکمل طور پر معیاری جدید آئی ایس او سی + + 17 ہیڈر فائل پر مبنی لائبریری ہے۔ زبان کی توسیعات C + +/CLI سے نحو ادھار لیتی ہیں لیکن کامن لینگویج رن ٹائم اور منظم کوڈ کے بجائے ونڈوز رن ٹائم یونیورسل ونڈوز پلیٹ فارم کے مقامی کوڈ کو نشانہ بناتی ہیں۔ یہ نحو اور لائبریری تجریدوں کا ایک مجموعہ لاتا ہے جو کام کے ڈبلیو آر ایل سب سیٹ پر مبنی ون آر ٹی پروگرامنگ ماڈل کو اس طرح سے پیش کرتا ہے جو سی + +/سی ایل آئی کے زیر انتظام ایکسٹینشنز کے کوڈرز کے لیے بدیہی ہے۔ نچلے درجے کی ونڈوز رن ٹائم سی + + ٹیمپلیٹ لائبریری (ڈبلیو آر ایل) کے ذریعے مقامی آئی ایس او سی + + سے ونڈوز رن ٹائم پر کال کرنا ممکن ہے۔ تاہم، ڈبلیو آر ایل کی جگہ سی + +/ون آر ٹی نے بھی لے لی ہے۔ ایکسٹینشن نحو C + +/CX ونڈوز رن ٹائم کے لیے پروگرامنگ کے لیے نحو توسیع متعارف کراتا ہے۔ مجموعی طور پر غیر پلیٹ فارم مخصوص نحو C + + 11 معیار کے ساتھ مطابقت رکھتی ہے۔ ون آر ٹی آبجیکٹ ریف نیو کا استعمال کرتے ہوئے بنائے جاتے ہیں، یا چالو کیے جاتے ہیں اور C + +/CLI سے وراثت میں ملنے والے نوٹیشن کے ساتھ اعلان کردہ متغیرات کو تفویض کیے جاتے ہیں۔ فو ^ فو = ریف نیو فو () ؛ ون آر ٹی متغیر محض ورچوئل میتھڈ ٹیبل اور آبجیکٹ کے اندرونی ڈیٹا کے لیے پوائنٹر کا ایک جوڑا ہے۔ حوالہ شمار ایک ون آر ٹی آبجیکٹ کو حوالہ شمار کیا جاتا ہے اور اس طرح شیڈ _ پی ٹی آر میں منسلک عام سی + + آبجیکٹ کی طرح ہینڈل کرتا ہے۔ کسی آبجیکٹ کو اس وقت حذف کر دیا جائے گا جب اس کی طرف لے جانے والے کوئی بقیہ حوالہ جات نہ ہوں۔ اس میں کچرا اکٹھا کرنا شامل نہیں ہے۔ اس کے باوجود، کلیدی لفظ جی سی نیو کو مستقبل میں ممکنہ استعمال کے لیے محفوظ کر لیا گیا ہے۔ کلاسز رن ٹائم کلاسز رن ٹائم کلاسز کی خاص اقسام ہیں جن میں اجزاء کی توسیع کی تعمیرات شامل ہو سکتی ہیں۔ ان کو صرف ریف کلاس کہا جاتا ہے کیونکہ انہیں ریف کلاس کا استعمال کرتے ہوئے اعلان کیا جاتا ہے۔ عوامی ریف کلاس مائی کلاس {} ؛ جزوی کلاس سی + +/سی ایکس جزوی کلاسوں کے تصور کو متعارف کراتا ہے۔ یہ خصوصیت ایک واحد کلاس کی تعریف کو متعدد فائلوں میں تقسیم کرنے کی اجازت دیتی ہے، بنیادی طور پر ایکس اے ایم ایل گرافیکل یوزر انٹرفیس ڈیزائن ٹولز کو ایک علیحدہ فائل میں خودکار طور پر کوڈ تیار کرنے کے قابل بنانے کے لیے تاکہ ڈویلپر کی لکھی ہوئی منطق کو نہ توڑا جا سکے۔ حصوں کو بعد میں تالیف میں ضم کر دیا جاتا ہے۔ سی #جیسی. NET زبانوں میں یہ خصوصیت کئی سالوں سے موجود ہے۔ جزوی کلاسوں نے ابھی تک اسے C + + معیار میں نہیں بنایا ہے اور اس لیے اسے استعمال نہیں کیا جا سکتا، یہاں تک کہ C + + 20 میں بھی۔ ایک فائل جو جی یو آئی ڈیزائنر کے ذریعہ تیار اور اپ ڈیٹ کی جاتی ہے، اور اس طرح پروگرامر کے ذریعہ اس میں ترمیم نہیں کی جانی چاہئے۔ کلیدی لفظ جزوی نوٹ کریں۔ //foo.private.h #pragma ایک بار جزوی ریف کلاس فو {پرائیویٹ: int ID _ ؛ پلیٹ فارم:: سٹرنگ ^ نام _ ؛} ؛ وہ فائل جہاں پروگرامر یوزر انٹرفیس منطق لکھتا ہے۔ ہیڈر جس میں کلاس کے مرتب سے تیار کردہ حصے کی وضاحت کی گئی ہے اسے درآمد کیا جاتا ہے۔ نوٹ کریں کہ کلیدی لفظ جزوی ضروری نہیں ہے۔ //foo.public.h #pragma ایک بار #include "foo.private.h" ریف کلاس فو {عوامی: int GetId () ؛ پلیٹ فارم:: سٹرنگ ^ GetName () ؛} ؛ یہ وہ فائل ہے جس میں جزوی کلاس کے اراکین کو لاگو کیا جاتا ہے۔ //foo.cpp #include "pch.h" #include "foo.public.h" انٹ فو:: GetId () {واپسی ID _;} پلیٹ فارم:: سٹرنگ ^ فو:: GetName {واپسی کا نام _ ؛} جنیرکس ونڈوز رن ٹائم اور اس طرح C + +/CX رن ٹائم پر مبنی جنیرکس کو سپورٹ کرتا ہے۔ عام قسم کی معلومات میٹا ڈیٹا میں موجود ہوتی ہے اور رن ٹائم پر فوری ہوتی ہے، سی + + ٹیمپلیٹس کے برعکس جو کمپائل ٹائم کنسٹرکٹس ہوتے ہیں۔ دونوں کو مرتب کرنے والے کی طرف سے سپورٹ کیا جاتا ہے اور دونوں کو جوڑا جا سکتا ہے۔ عام <ٹائپ نام T> پبلک ریف کلاس بیگ {پراپرٹی T آئٹم ؛} ؛ میٹا ڈیٹا تمام ون آر ٹی پروگرام میٹا ڈیٹا کے ذریعے اپنی اعلان کردہ کلاسوں اور اراکین کو بے نقاب کرتے ہیں۔ فارمیٹ وہی ہے جسے کامن لینگویج انفراسٹرکچر (سی ایل آئی) کے حصے کے طور پر معیاری بنایا گیا تھا، جو. NET فریم ورک سے بنایا گیا معیار ہے۔ اس کی وجہ سے، کوڈ کو سی + +/سی ایکس، سی ایل آئی زبانوں، اور جاوا اسکرپٹ میں شیئر کیا جا سکتا ہے جو ونڈوز رن ٹائم کو نشانہ بناتے ہیں۔ رن ٹائم لائبریری C + +/CX میں لائبریریوں کا ایک مجموعہ ہے جو ونڈوز رن ٹائم کو نشانہ بناتا ہے۔ یہ سی + + اسٹینڈرڈ لائبریری اور ون آر ٹی کی فعالیت کو کم کرنے میں مدد کرتے ہیں۔ پری پروسیسر پر مبنی پتہ لگانا آپ یہ پتہ لگا سکتے ہیں کہ آیا سی + +/سی ایکس ایکسٹینشن کو _ _ سی پلس پلس _ ونرٹ پری پروسیسر علامت کے وجود کی جانچ کر کے آن کیا گیا ہے۔ #ifdef _ _ c پلس پلس ونرٹ// C + +/CX مخصوص کوڈ یہاں جاتا ہے۔ #endif ونڈوز رن ٹائم حوالہ جات بھی دیکھیں C + +/CX ڈیزائن کے اندر بیرونی لنکس-بصری C + + ٹیم بلاگ جا رہا ہے۔ مقامی 3: ماریان لوپارو کے ساتھ C + +/CX قسط-چینل 9 ون آر ٹی اور ون ایم ڈی فائلیں-ماریس بینسیلا کا بلاگ بصری C + + زبان حوالہ (C + +/CX) C + + + پروگرامنگ زبان خاندان C + + مرتب