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