PDA

View Full Version : فضاهای نام ( NameSpace )



mr_esmaily
سه شنبه 28 تیر 1384, 13:37 عصر
سلام
کاربرد فضای نام چیست و چگونه از آن می توان استفاده کرد ؟

sh_roohani
سه شنبه 28 تیر 1384, 13:56 عصر
فضاهای نام برای این به کار می رن که اگه شما مثلا در دو کتابخونه مختلف یه نام یکسان داشته باشین، بتونین با قید فضای نام پیش از هر کدوم از اون نامها از ایجاد ابهام در حین کامپایل جلوگیری کنین. شما می تونین برای یه کتابخونه جدید که ایجاد می کنین یه نام خاص رو در نظر بگیرین و به ترتیب زیر اونو ایجاد کنین:

namespace identifier
{
namespace-body
}
حالا به عنوان یه مثال به کد زیر توجه کنین:

#include <iostream>
using namespace std;

namespace mynamespace
{
void func1();
}

void mynamespace::func1()
{
cout << "func1" << endl;
}

int main()
{
mynamespace::func1();

return 0;
}
در اینجا mynamespace نامیه که من انتخاب کردم. حالا فرقی نمی کنه، شما اگه کدتون رو تو یه فایل جداگانه هم بنویسید باز به همین ترتیب کار می کنه.
std هم namespace استاندارد ++C هست. اگه using namespace std رو ننوشته بودم، اونوقت باید با نوشتن std::cout به کامپایلر تاکید می کردم که شیء cout داخل فضای نام std تعریف شده. البته اگه به جای iostream، به روش قدیمی C از iostream.h استفاده می کردم، دیگه نباید از std استفاده می کردم.

mr_esmaily
سه شنبه 28 تیر 1384, 14:37 عصر
سلام
از توجهتون ممنونم , حل شد.