انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: فضای نام به چه معناست؟  (دفعات بازدید: 1968 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین محمد اعتماددار

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
فضای نام به چه معناست؟
« : 09 تیر 1392، 11:45 ب‌ظ »
ممکنه کسی توضیح بده که فضای نام چی هست؟
و این‌که این جمله در سی‌++ به چه معناست؟
using namespace std;
« آخرین ویرایش: 09 تیر 1392، 11:53 ب‌ظ توسط محمد اعتماددار »
--~~~~

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4872
  • جنسیت : پسر
  • masoft قدیم
پاسخ : فضای نام به چه معناست؟
« پاسخ #1 : 09 تیر 1392، 11:50 ب‌ظ »
اگر یک توضیح خیلی کوتاه می‌خوای، این دستور باعث می‌شه که از این به بعد نیاز به نوشتن ::std نداشته باشی.
یعنی بجای نوشتن std::cout کافیه بنویسی cout.

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
پاسخ : فضای نام به چه معناست؟
« پاسخ #2 : 09 تیر 1392، 11:57 ب‌ظ »
فضای نام یعنی هر شناسه ای اعم از اسم متغیر، اسم تابع، اسم کلاس و هر چیز دیگه توی این فضا فقط توسط سایر اعضای این فضا به صورت مستقیم در دسترس هست. مثلا کد زیر رو در نظر بگیر:
namespace ns1
{
  int a;
}
namespace ns2
{
  int a;
}
حالا یه برنامه داریم که میخواد از اون متغیر a استفاده کنه. حالا کدوم a؟ بستگی داره کدوم یکی رو بخواد. مثلا اگه بخواد از a اس که توی ns1 هست استفاده کنه مثلا مینویسه:
ns1::a = 5;حالا اون کدی که شما گفتی یعنی اینکه یه namespace به نام std هست که من میخوام ازش استفاده کنم ولی طبق مثال قبل باید هر دفعه اسم اون namespace و :: بعدش رو بزارم. برای اینکه خودم رو راحت کنم مینویسم.
using namespace std;یا مثلا برای مثالهای خودم مینویسم:
using namespace ns1;
a = 5;
این یعنی اون a ای که توی ns1 هست منظورمه. اگه خواستم از اون یکی استفاده کنم باید بنویسم:
ns2::a = 6;
موفق باشید.
Ubuntu 14.04 LTS 64-bit - unity

آفلاین Ha:D

  • Jr. Member
  • *
  • ارسال: 55
  • جنسیت : پسر
پاسخ : فضای نام به چه معناست؟
« پاسخ #3 : 11 تیر 1392، 10:05 ب‌ظ »
برای تکمیل نوشته های دوستان :

وقتی از std استفاده میکنی یعنی داری از فضای نام استاندارد استفاده میکنی...