ورود

View Full Version : در مورد Using Namespace Std; در ++C



vahidbolbol
شنبه 14 تیر 1393, 10:56 صبح
با سلام خدمت دوستان گلم
خسته نباشید
ببخشید من کدهای سی پلاس رو درون برنامه ویژال سی پلاس پلاس 2005 مینویسم میخواستم بدونم حتما باید از (Using Namespace Std;) بعد از معرفی کتابخانه استفاده کرد؟
حتما بتید Std باشه؟آخه من هرچی نام مینویسم قبول نمیکنه و وقتی Std مینویسم برنامم اجرا میشه!!! وقتی تعریف نمیکنم یا به یک اسم دیگه مینویسم اصلا (cin و cout) را نمیشناسه!!!
میشه دلیلشو برام کامل توضیح بدین
بعدشم یک برنامه برام معرفی کنید مه تو ویندوز سون نصب بشه و کار باهاش آسان
خواهشا زود جوابمو بدین خیلی حیاطی هست

کامبیز اسدزاده
شنبه 14 تیر 1393, 22:27 عصر
با سلام خدمت دوستان گلم
خسته نباشید
ببخشید من کدهای سی پلاس رو درون برنامه ویژال سی پلاس پلاس 2005 مینویسم میخواستم بدونم حتما باید از (Using Namespace Std;) بعد از معرفی کتابخانه استفاده کرد؟
حتما بتید Std باشه؟آخه من هرچی نام مینویسم قبول نمیکنه و وقتی Std مینویسم برنامم اجرا میشه!!! وقتی تعریف نمیکنم یا به یک اسم دیگه مینویسم اصلا (cin و cout) را نمیشناسه!!!
میشه دلیلشو برام کامل توضیح بدین
بعدشم یک برنامه برام معرفی کنید مه تو ویندوز سون نصب بشه و کار باهاش آسان
خواهشا زود جوابمو بدین خیلی حیاطی هست

سلام

شما برای اینکه به توابع و کلاس های زیرین موجود و تعریف شده به صورت مستقیم دسترسی پیدا کنید باید از using namespace std; استفاده کنید.
در این حالت به صورت زیر استفاده میشه :


cout << "Test";


در صورتی که از std استفاده نکنید باید فضای نام رو صدا بزنید به صورت زیر :


std::cout<< "Test";

vahidbolbol
یک شنبه 15 تیر 1393, 11:55 صبح
سلا
مرسی از اینکه کمکم میکنید
ببینید چیزی که من از این فضا نام فهمیدم اینه که برای مثلا چاپ یا گرفتن کارامتر باید از فضای نام Std استفاده کنم و مثلا برای گرفتن تاریخ یا زمان باید از فضای نام Date استفاده کنم به نظر شما درسته این فهم من از فضا نام؟نمیشه برای ایجاد فضای نام یک اسم به دلخواه انتخاب کنیم؟چون من هر اسمی به غیر از Std استفاده میکنم خطا میده!!!
منتظر جوابتون هستم...

vahidbolbol
یک شنبه 15 تیر 1393, 12:21 عصر
راستی یک سوال دیگه
میخواستم بدون طوری میشه من مثلا یک عدد اعشاری وارد کنم اما خروجیش بهم عدد صحیح بده
باید اول متغییر float تعریف کنم و بعد برای چاپ عدد از متغییر int استفاده کنم؟
اگه میشه یک دستور کدی برام بنویسید یا یک مثال خیلی ساده
ممنون میشم

کامبیز اسدزاده
یک شنبه 15 تیر 1393, 12:45 عصر
سلا
مرسی از اینکه کمکم میکنید
ببینید چیزی که من از این فضا نام فهمیدم اینه که برای مثلا چاپ یا گرفتن کارامتر باید از فضای نام Std استفاده کنم و مثلا برای گرفتن تاریخ یا زمان باید از فضای نام Date استفاده کنم به نظر شما درسته این فهم من از فضا نام؟نمیشه برای ایجاد فضای نام یک اسم به دلخواه انتخاب کنیم؟چون من هر اسمی به غیر از Std استفاده میکنم خطا میده!!!
منتظر جوابتون هستم...

در بسیاری از موارد پیشفرض تعیین کردن نام فضای نام به صورت سلیقه ای نیست که ما تعیین کنیم مثلا همینکه شما میگید Std خودش غلطه و درستش std هست !
و در کل برای تعریف فضای نام به صورت سلیقه ای برای کلاس ها و توابعی که خودتون نوشتین میتونید به روش زیر اقدام کنید :


namespace namespace_name {
// code declarations
}


و به صورت جزئی تر به صورت زیر :


// header
namespace X
{
class Foo
{
public:
void TheFunc();
};
}


// cpp
namespace X
{
void Foo::TheFunc()
{
return;
}
}




راستی یک سوال دیگه
میخواستم بدون طوری میشه من مثلا یک عدد اعشاری وارد کنم اما خروجیش بهم عدد صحیح بده
باید اول متغییر float تعریف کنم و بعد برای چاپ عدد از متغییر int استفاده کنم؟
اگه میشه یک دستور کدی برام بنویسید یا یک مثال خیلی ساده
ممنون میشم

در رابطه با این سوالات هم توصیه من اینه در تالار های مربوط به مباحث اولیه C/C++ بپرسید.