تخطَّ إلى المحتوى

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 aliasusing يدعم القوالب: 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 الكامل بالعربي.