using
الأسماء المستعارة للأنواع using
using تنشئ اسمًا مستعارًا لنوع موجود (بديل حديث عن typedef) أو تسحب اسمًا محددًا من namespace آخر.
using له استخدامان أساسيان: إنشاء alias لنوع طويل أو معقّد (خصوصًا مع القوالب) لجعل الكود أوضح، أو سحب اسم واحد محدد من namespace بدل سحب كل شيء بـ using namespace. الصيغة الحديثة using Name = Type; أوضح وتدعم القوالب بشكل أفضل من typedef القديمة الموروثة من C.
الصياغة
using Alias = ExistingType; using Namespace::name;
📄 مثال
using StringList = std::vector<std::string>;
using IntPair = std::pair<int, int>;
StringList names = {"سارة", "عمر"};
IntPair point = {3, 5};
using std::cout; // يسحب cout فقط، لا كل stdأهم النقاط
| العنصر | الوظيفة |
|---|---|
| using X = Type; | اسم مستعار لنوع — أوضح من typedef القديمة خصوصًا مع القوالب |
| using NS::name; | سحب اسم واحد فقط من فضاء اسم بدل الكل |
| template alias | using يدعم القوالب: template<typename T> using Vec = std::vector<T>; |
💡 نصائح عملية
- فضّل using على typedef دائمًا بكود جديد — أوضح للقراءة ويدعم القوالب
- استخدم alias للأنواع الطويلة المتكررة مثل std::map<std::string, std::vector<int>>
⚠️ أخطاء شائعة
- الخلط بين using Alias = Type; (تعريف نوع) وusing namespace X; (سحب فضاء اسم كامل) — استخدامان مختلفان تمامًا
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار CPP الكامل بالعربي.