لماذا لا يجب كتابة `using namespace std;` في C++ وما هي البدائل؟
مرحبًا! بدأت تعلم لغة C++ وفي جميع الدروس وأمثلة الكود أرى باستمرار السطر `using namespace std;`. اعتدت دائمًا على كتابته في بداية البرنامج، لأنه بدونه يجب إضافة `std::` في كل مكان، وهو ما يبدو غير مريح. على سبيل المثال:
```cpp
#include
#include
#include
using namespace std;
int main() {
vector numbers = {5, 2, 8, 1, 9};
sort(numbers.begin(), numbers.end());
cout << "مُرتّب: ";
for (int n : numbers) {
cout << n << " ";
}
cout << endl;
return 0;
}
```
لكنني قرأت مؤخرًا أن المبرمجين ذوي الخبرة ينصحون بعدم استخدام `using namespace std;` أبدًا في المشاريع الحقيقية. يُزعم أن هذا قد يؤدي إلى أخطاء يصعب اكتشافها. جربت كتابة الكود بدون هذا التوجيه، فأصبح ضخمًا:
```cpp
std::vector numbers = {5, 2, 8, 1, 9};
std::sort(numbers.begin(), numbers.end());
std::cout << "مُرتّب: ";
```
أشعر أن قابلية قراءة الكود تدهورت.