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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: محمد اعتماددار در 09 تیر 1392، 11:45 ب‌ظ

عنوان: فضای نام به چه معناست؟
ارسال شده توسط: محمد اعتماددار در 09 تیر 1392، 11:45 ب‌ظ
ممکنه کسی توضیح بده که فضای نام چی هست؟
و این‌که این جمله در سی‌++ به چه معناست؟
using namespace std;
عنوان: پاسخ : فضای نام به چه معناست؟
ارسال شده توسط: nixoeen در 09 تیر 1392، 11:50 ب‌ظ
اگر یک توضیح خیلی کوتاه می‌خوای، این دستور باعث می‌شه که از این به بعد نیاز به نوشتن ::std نداشته باشی.
یعنی بجای نوشتن std::cout کافیه بنویسی cout.
عنوان: پاسخ : فضای نام به چه معناست؟
ارسال شده توسط: majidkamali1370 در 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;
موفق باشید.
عنوان: پاسخ : فضای نام به چه معناست؟
ارسال شده توسط: Ha:D در 11 تیر 1392، 10:05 ب‌ظ
برای تکمیل نوشته های دوستان :

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