اذهب إلى المحتوى

السؤال

نشر

قرأت في عدد من الأماكن أن لا يجب أن أستخدم الكود التالي:

using namespace std;

لكن بالرغم من ذلك، أليس الكود السابق يجعل مهمة التطوير أسهل؟ فبدلًا من إستعمال std::cout أكتب cout فقط.

لماذا لا ينصح بإستخدام الكود السابق؟ هل يؤثر على سرعة تنفيذ البرنامج؟ أم يوجد سبب مختلف؟

Recommended Posts

  • 2
نشر

السبب ليس تأثير هذه الطريقة في إستخدام المجال std على أداء البرنامج، في الواقع هذا الكود لن يؤثر على أداء البرنامج بل على طريقة تصريفه compiling حيث قد تظهر العديد من الأخطاء في حالة وجود دوال مشابة للموجودة في المجال std، فعلى سبيل المثال إن كان لدينا الكود التالي:

using namespace foo;	//  يحتوي على الدالة xyz
using namespace bar;	//  يحتوي ايضًا على الدالة xyz

الكود السابق سوف يؤدي إلى خطأ أثناء عملية التصريف بسبب تعريف الدالة xyz مسبقًا، وبالتالي لا تستفيد من فضاءات الأسماء namespaces حيث أن سبب إستخدامها هو حل هذه المشكلة من الأساس.

يمكنك الإطلاع على هذه المقالة لمزيد من المعلومات حول فضاءات الأسماء namespaces:

ملاحظة يمكنك أن تستعمل اللكود التالي في حالة أردت إستخدام cout بدون كتابة اسم المجال std:

#include <iostream>

// إستخدام cout فقط
using std::cout;

int main()
{
    cout << "hello, wolrd\n";
    return 0;
}

بهذه الطريقة يمكنك إستعمال كل الدوال من المكتبة القياسية iostream وفي نفس الوقت تستطيع إستعمال cout بشكل مباشر.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...