آیا using namespce std; فقط برای cout o cin هست؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

آیا using namespce std; فقط برای cout o cin هست؟

+1 امتیاز
دوستان من تو سایت سرچ هم کردم ولی اطلاعات مورد نظر من یافت نشد.

میخاستم بدونم آیا using namespce std; فقط برای cout o cin هست؟

این سوال برای این برام پیش اومد که من دوتا فایل هدر خودم ساختم و خاستم از هردو تو main استفاده کنم، هم تو فایل های هدر هم تو مین از using name space std استفاده کردم، چون هدر هام استراکت و متغیییر های استراکت و تقریبا بیشر اسمهای یه تابع شبیه هم داشت ، ولی خطا میداد هنگام کامپایل، مگه using namespce std نباید بیاد به اسم های مشابه یه چیزهایی اضافه کنه تا کامپایلر خطا نگیره؟
سوال شده شهریور 5, 1393  بوسیله ی hosseinam1370 (امتیاز 163)   8 22 34
ویرایش شده دی 19, 1393 بوسیله ی BlueBlade
توی هر فایلی که بخواین از یک هدر استفاده کنید باید به اون فایل هدر رو include کنید مگه غیر از اینه؟
نمیدونم  که ، ببین من دوتا فایل هدر دارم که میخام داخل main از اون استفاده کنم ،هر دوتا رو هم اینکلود کردم تو مین ،ولی خوب خطا داد.
مشکل از استراکت هست ، الان خودم دارم میگردم دنبال مشکلش.

1 پاسخ

+4 امتیاز
 
بهترین پاسخ

میخاستم بدونم آیا using namespce std; فقط برای cout o cin هست؟

using namespace std مخصوص cin یا cout نیست مخصوص هر چیزی هست که داخل namespace  مربوط به std قرار گرفته مثلا برای استفاده کردن از هدر الگوریتم و توابعی مثل sort یا استفاده از vector و... هم بهش نیاز هست .

مگه using namespce std نباید بیاد به اسم های مشابه یه چیزهایی اضافه کنه تا کامپایلر خطا نگیره؟

نه using  چیز خاصی اضافه نمی کنه فقط scope مربوط به namespace رو بیشتر می کنه .

در مورد scope وnamespace این  لینک رو ببینید : کاربرد namespace در ++C 

 


 

و این که اصولا بهتره که using namespace std  استفاده نشه  استفاده کردن از std::  هم کد رو خواناتر می کنه هم از ترکیب اسم های ۲ تا namespace متفاوت هم جلوگیری می کنه .

 

پاسخ داده شده شهریور 5, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد شهریور 5, 1393 بوسیله ی hosseinam1370
...